1. 程式人生 > >【LeetCode】Minimum Size Subarray Sum

【LeetCode】Minimum Size Subarray Sum

採用類似滑動視窗的形式,雙指標i,j,複雜度O(n).

與https://leetcode.com/problems/minimum-window-substring/  這題有點類似

public class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        if(nums == null || nums.length == 0) return 0;
        int res = Integer.MAX_VALUE;
        int sum = 0, i = 0, j = 0;
        while(i <= j && j < nums.length && sum < s){
            sum += nums[j];
            while(i <= j && sum >= s){
                res = Math.min(res, j - i + 1);
                sum -=nums[i];
                i ++;
            }
            j ++;
        }
        return (res == Integer.MAX_VALUE ? 0 : res);
    }
}