解题思路
双指针,i不断地向前进,j 如果sum-res[j]>=target,j也会前进。在这期间不断得更新最小子数组长度。
相关代码
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int sum=0;
int res=0x3f3f3f3f;
for(int i=0,j=0;i<nums.length;i++){
sum=sum+nums[i];
while(sum-nums[j]>=target){
sum=sum-nums[j++];
}
if(sum>=target)
res = Math.min(res,i-j+1);
}
if(res==0x3f3f3f3f){
res=0;
}
return res;
}
}