滑动窗口
public static int minSubArrayLen(int target, int[] nums) {
//滑动窗口
int left = -1,right = -1;//双指针
int sum = 0,minLength = Integer.MAX_VALUE;
while(left <= right){
if (sum < target){
right++;
if (right >= nums.length)//判断是否越界
break;
sum+=nums[right];
}else {
//检查是否更换最小长度
if((right-left)<minLength){
minLength = right-left;
}
left++;
if (left > right)
break;
sum -= nums[left];
}
}
return minLength == Integer.MAX_VALUE ? 0 : minLength;
}
截一张大佬的图(侵权联系我删)