209. Minimum Size Subarray Sum - Medium

前往題目

想法

  • 明顯是sliding window問題

思路

  1. 左右指針
  2. 從零開始,每次加上當前數字
  3. 如果大於或等於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/
作者
Simon Lai
發布於
2024年7月22日
許可協議