当前位置: 首页 > news >正文

LeetCode862 和至少为k的最短子数组

题目:

在这里插入图片描述

解析:
1、先构造前缀和数组
2、单调队列存放滑动窗口,目的求Sj-Si >=k的情况下,窗口最小。

代码:

class Solution {public int shortestSubarray(int[] nums, int k) {int n = nums.length;long[] sums = new long[n + 1];      // 注意这里加和后,容易超过int,加和用long数组for (int i = 1; i <= n; i++) {sums[i] = sums[i - 1] + nums[i - 1];}Deque<Integer> deque = new LinkedList<>();deque.add(0);int res = Integer.MAX_VALUE;for (int i = 1; i <= n; i++) {while (!deque.isEmpty() && sums[i] - sums[deque.peek()] >= k) { // 注意边界,求最小这里应该 >=res = Math.min(res, i - deque.poll());}//将所有大于等于s[i]的数删掉 问题:这里不删能怎么样,上面求最小值会守影响么?while (!deque.isEmpty() && sums[deque.peekLast()] >= sums[i]) {  // 注意边界,求最小这里应该 >=deque.pollLast();}deque.add(i);}if (res == Integer.MAX_VALUE) {return -1;}return res;}
}
http://www.lryc.cn/news/188323.html

相关文章:

  • 网卡bonding模式 - bond模式配置介绍
  • 做了个 chrome 插件实现 B 站视频截图功能,直接从当前视频帧无损复制
  • Docker linux 安装
  • windows部署django服务器
  • ChatGPT prompt汇总-个人使用-持续更新....
  • Vue实现简单的接口封装
  • 软件测试工具有什么作用?有哪些好用的测试工具推荐?
  • 写爬虫?前端er何必用python
  • 交通物流模型 | 基于交通图卷积长短时记忆网络的网络级交通流预测
  • web 基础和http 协议
  • Java常量与变量
  • 神经网络中卷积和池化的区别
  • RK3568平台开发系列讲解(驱动篇)RK3568 PWM详解
  • 禾匠商城系统 企业转账到零钱 修改成 商家转账到零钱
  • 点云从入门到精通技术详解100篇-基于激光点云的道路目标检测
  • 【Hello Algorithm】暴力递归到动态规划(一)
  • 凉鞋的 Godot 笔记 107. 脚本窗口文件系统窗口
  • 数据源作用以及spring配置数据源
  • Javaweb中的servlet中的消息体是什么?
  • 饥荒服务器阿里云租用价格表一年和一个月收费报价表
  • 前端 JS 经典:Math 常用方法汇总
  • MongoDB 笔记
  • Maven 项目文档
  • 浏览器中XPath的使用
  • js录制屏幕并输出视频
  • 华为OD机试 - 数组组成的最小数字(Java 2023 B卷 100分)
  • 数据结构-顺序存储二叉树
  • mysql学习实践
  • 键盘控制应用--通过键盘发送控制指令
  • python中pytorch的广播机制——Broadcasting