给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
//双指针
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int start=0;
int sum = 0;//部分求和
int len=Integer.MAX_VALUE;//用来比较
//int res=0;
for(int end=0;end<nums.length;end++){
sum += nums[end];
while(sum>=target){//用while是可能要多次断掉前面的数
len = Math.min(len,end-start+1);
sum = sum-nums[start];//减掉最前面的数
start++;//成为最前面的后一个数
//res = len;
}
}
return len == Integer.MAX_VALUE ? 0 : len;
}
}