class Solution {
public int minSubArrayLen(int target, int[] nums) {
int minLength = Integer.MAX_VALUE;
int length = nums.length;
int sum = 0, start = 0, end = 0;
if (length == 0) {
return 0;
}
while (end < length) {
sum += nums[end];
while (sum >= target) {
minLength = Math.min(minLength, end - start + 1);
/*滑动窗口,加一个while循环,如果sum一直大于目标值,那么移动end是没有意义的
* 这个时候只有移动start,减小sum的值,看看能不能获得长度更小的连续字符串*/
sum -= nums[start];
++start;
}
++end;
}
return minLength == Integer.MAX_VALUE ? 0 : minLength;
}
}
来源:LeetCode官方