力扣面试150 长度最小的子数组 滑动窗口
Problem: 209. 长度最小的子数组
参考题解
滑动窗口
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int n = nums.length;
int ans = n + 1;
int sum = 0; // 子数组元素和
int left = 0; // 子数组左端点
for (int right = 0; right < n; right++) { // 枚举子数组右端点
sum += nums[right];
while (sum >= target) { // 满足要求
ans = Math.min(ans, right - left + 1);
sum -= nums[left++]; // 左端点右移
}
}
return ans <= n ? ans : 0;
}
}