209. Minimum Size Subarray Sum
来源:互联网 发布:初学数控车床编程教程 编辑:程序博客网 时间:2024/06/05 11:37
Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.
For example, given the array [2,3,1,2,4,3]
and s = 7
,
the subarray [4,3]
has the minimal length under the problem constraint.
思路:前后指针的移动窗口问题,各种corner case要考虑全面
public class Solution { //前后指针的移动窗口,当sum>=s时更新最小len public int minSubArrayLen(int s, int[] nums) { if(nums==null||nums.length==0) return 0; int len=nums.length+1; //sum从nums[0]开始,保持tail在当前sum的尾 for(int head=0,tail=0,sum=nums[0]; tail<nums.length & head<=tail; ){ if(sum<s) { //先tail++,再sum+=nums[tail],让tail在当前sum的尾,下一轮算len不会多1 tail++; //11, [1,2,3,4,5]array outofrange error 判断一下tail==nums.length再sum+=nums[tail], 防止tail已经是最后一个了 if(tail<nums.length) sum+=nums[tail]; } else{ len = Math.min(len,tail-head+1); sum-=nums[head]; head++; } } return len>nums.length? 0:len; }}
更清晰的思路
public int minSubArrayLen(int s, int[] nums) { if(nums==null||nums.length==0) return 0; int minL=nums.length+1, sum=0; for(int pre=0, cur=0; cur<nums.length&&pre<=cur; ){ sum+=nums[cur++]; while(sum>=s){ minL = Math.min(minL,cur-pre); sum-=nums[pre++]; } } return minL>nums.length?0:minL; }
0 0
- 209.Minimum Size Subarray Sum
- 209.Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 209. Minimum Size Subarray Sum
- 【待写】大型工程的Makefile管理与生成方案:ruby脚本+模块
- 欢迎使用CSDN-markdown编辑器
- HTML5:localStorage
- 视差特效
- Ruby对象模型 -整理
- 209. Minimum Size Subarray Sum
- 看我一个毕业一年的小菜是怎么对自己规划的,各路神仙请参考和指点
- 关于RxJava最友好的文章
- 还有60来天考研,FIGHTING!!!
- ROC曲线绘制及AUC计算
- repo下载国内链接android源码
- 树、二叉树概念
- VMware虚拟机中的CentOS安装Nginx后本机无法访问的解决办法
- java.lang.NoClassDefFoundError: org/slf4j/Logger 错误的解决