插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 
坚持不懈,越努力越幸运,大家一起学习鸭~~~

3妹:小呀么小二郎呀, 背着那书包上学堂。
2哥:不怕太阳晒, 不怕那风雨打。
3妹:就怕老师说我懒呀,没有学问,无脸见爹娘。
2哥:3妹, 周杰伦又发新专辑了,you know? 你的曲库该更新一下了。
3妹:yeah, I know. 我可是听着我伦的歌长大的。
2哥:是的, 记得那时还是上高中的时候……
3妹:2哥,又开始回忆你的青春岁月了,哈哈
2哥:3妹也会取笑人了,不跟你说了,我继续做题了。

题目:

给你一个整数数组 nums 和一个整数 k ,找出 nums 中和至少为 k 的 最短非空子数组 ,并返回该子数组的长度。如果不存在这样的 子数组 ,返回 -1 。

子数组 是数组中 连续 的一部分。

示例 1:

输入:nums = [1], k = 1
输出:1
示例 2:

输入:nums = [1,2], k = 4
输出:-1
示例 3:

输入:nums = [2,-1,2], k = 3
输出:3

提示:

1 <= nums.length <= 10^5
-105 <= nums[i] <= 10^5
1 <= k <= 10^9

java代码:

class Solution {public int shortestSubarray(int[] A, int K) {int N = A.length;long[] P = new long[N+1];for (int i = 0; i < N; ++i)P[i+1] = P[i] + (long) A[i];// Want smallest y-x with P[y] - P[x] >= Kint ans = N+1; // N+1 is impossibleDeque<Integer> monoq = new LinkedList(); //opt(y) candidates, as indices of Pfor (int y = 0; y < P.length; ++y) {// Want opt(y) = largest x with P[x] <= P[y] - K;while (!monoq.isEmpty() && P[y] <= P[monoq.getLast()])monoq.removeLast();while (!monoq.isEmpty() && P[y] >= P[monoq.getFirst()] + K)ans = Math.min(ans, y - monoq.removeFirst());monoq.addLast(y);}return ans < N+1 ? ans : -1;}
}

【教3妹学算法-每日3题(3)】 和至少为 K 的最短子数组相关推荐

  1. 【教3妹学算法-每日3题(1)】商品折扣后的最终价格

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.  坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:哎,又到周一了,不想上班不想上班,什么时 ...

  2. 【教3妹学算法-每日3题(3)】 判断矩阵经轮转后是否一致

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站.  坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:小呀么小二郎呀, 背着那书包上学堂. 2 ...

  3. 算法/编程练习:寻找和至少为K的最短子数组

    寻找和至少为K的最短子数组 1. 题目 题目来自LeetCode: https://leetcode-cn.com/problems/shortest-subarray-with-sum-at-lea ...

  4. 《有意思的题》和至少为 K 的最短子数组

    问题: 力扣的第209道题209. 长度最小的子数组 - 力扣(LeetCode)很简单的滑动窗口,但是如果数组中有负数,那就有点麻烦了,例如力扣的第86道题862. 和至少为 K 的最短子数组 - ...

  5. 【每日一题Day8】LC862和至少为K的最短子数组

    *和至少为K的最短子数组[LC862] 给你一个整数数组 nums 和一个整数 k ,找出 nums 中和至少为 k 的 最短非空子数组 ,并返回该子数组的长度.如果不存在这样的 子数组 ,返回 -1 ...

  6. LeetCode算法系列_0862_和至少为K的最短子数组

    0862_和至少为 K 的最短子数组 题目描述 返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K . 如果没有和至少为 K 的非空子数组,返回 -1 . 示例1: 输入:A = [1], ...

  7. ⭐算法入门⭐《队列 - 单调队列》困难03 —— LeetCode 862. 和至少为 K 的最短子数组

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   返回数组 AAA 的最 ...

  8. 教小学妹学算法:诺基亚引出的动态规划问题

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 今天还是将那位入坑算法的小学妹 ...

  9. 教小学妹学算法:搜索算法解决迷宫问题

    Hello,我是 Alex 007,一个热爱计算机编程和硬件设计的小白,为啥是007呢?因为叫 Alex 的人太多了,再加上每天007的生活,Alex 007就诞生了. 最近有一位小学妹 Coco 入 ...

最新文章

  1. Tomcat学习笔记02【Tomcat部署项目】
  2. 未来教育计算机二级01为法律一班,2019年3月计算机二级MSOffice提分试题及答案012...
  3. 使用wireshark抓包,本地环回测试通信数据已经通过SM4国密算法加密
  4. C语言---输出三角形字符阵列
  5. [Oracle]行列转换(行合并与拆分)
  6. 分布式锁的过期时间设置多长合适_科普:Redis 分布式锁进化史(解读 + 缺陷分析)...
  7. 目标检测工具安装使用--labelImg
  8. 数据库原理及应用教程 第四版|微课版答案 陈志泊主编
  9. Vue.js 菜鸟教程 思维导图
  10. ArcMap下停靠栏的设计与实现
  11. mysql模糊查询语句怎么不区分大小写
  12. Visual Stdio 中的error C2001: 常量中有换行符
  13. mysql为什么不使用二叉树,MYSQL 索引为什么使用B+树,而不是 B 树,二叉树:
  14. mysql=mariadb
  15. 【python MySQL 笔记】MySQL 查询
  16. 第六篇:weblogic之被管服务器的创建
  17. mysql强制杀进程_mysql 杀掉(kill) lock进程脚本
  18. 【新闻】Googel 发布 sugguest 服务
  19. 云服务器导购:cpu、内存、硬盘、带宽都具体有什么用?
  20. 重整山河!2017eSmart,让VR飞一会儿

热门文章

  1. 关于uni-app获取完整的iccid(中间带有字母的iccid)
  2. 怎样迅速搭建运营级直播服务器,用直播源码来完成属于你的专属直播服务
  3. 在macOS上交叉编译arm64的程序并在IOS上运行
  4. html 语言注释,HTML 注释
  5. 平面极坐标系下质点的运动方程
  6. ROS2编程基础课程--DDS
  7. Cocos Creator 3.2 中实现2D地图3D人物45度角RPG游戏效果笔记(摄像机设置方案)
  8. X-Window结构分析与应用
  9. 固化EOS智能合约,监管升级权限,净化EOS DAPP生态
  10. 2020大学生网络安全知识大赛总决赛模拟卷错题集(10)