详细介绍:LeetCode第209题 - 长度最小的子数组
解答
class Solution
{
public int minSubArrayLen(int target, int[] nums) {
int left = 0;
int right = 0;
int length = Integer.MAX_VALUE - 1;
int sum = 0;
while (right < nums.length) {
int value1 = nums[right];
++right;
sum += value1;
while (sum >= target) {
if (sum >= target) {
length = Math.min(right - left, length);
}
int value2 = nums[left];
++left;
sum -= value2;
}
}
return length == Integer.MAX_VALUE - 1 ? 0 : length;
}
}
总结
二分法。

浙公网安备 33010602011771号