209. Minimum Size Subarray Sum - Medium
前往題目
想法
- 明顯是
sliding window
問題
思路
- 左右指針
- 從零開始,每次加上當前數字
- 如果大於或等於
target
,紀錄最小值,並且移動左指針直到當前總和小於target
,才進入下一循環
Code
自己嘗試寫這題時移動左指針的時機沒有寫好,有小bug
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int l = 0;
int res = Integer.MAX_VALUE;
int curSum = 0;
for (int r = 0; r < nums.length; ++r) {
curSum += nums[r];
// Shrink until smaller and find min value along the way
while (curSum >= target) {
res = Math.min(res, r - l + 1);
curSum -= nums[l];
++l;
}
}
return res == Integer.MAX_VALUE ? 0 : res;
}
}
209. Minimum Size Subarray Sum - Medium
https://f88083.github.io/2024/07/22/209-Minimum-Size-Subarray-Sum/