力扣中209 长度最小的子数组
本来自己尝试着写 刚开始一直bug 大样例能过但是会有一些特殊情况
比如所有的和都小于target 刚好等于target等情况 在这边玩微信边做 好半天给搞不对

还有就是看完题解觉得 对于左右指针 直接设出更合适 然后对于题意 顺着写的代码一步一步走
class Solution { public static int minSubArrayLen(int target, int[] nums) { int len = nums.length; int flag=0; //标记总的和都小于target这种情况 int sum=0;//子数组和 int res=len;//最后输出的个数 int left=0;//左边界 int count=0; //计数的个数 for(int i=0;i<len;i++) { sum=sum+nums[i]; count++; while(sum>=target){ res = Math.min(res,count); flag=1; sum=sum-nums[left]; left++; count--; } } if(flag==0) { return flag; } return res; } }

浙公网安备 33010602011771号