1. 程式人生 > >209.Minimum Size Sbuarray Sum

209.Minimum Size Sbuarray Sum

用滑動視窗法,維護兩個變數left,right,當它們之間的陣列和sum>=s時,逐步將left往右移,在保證sum>=s時,更新sum和len。當sum<s時,將right往右移,直到sum>=s時,重複剛剛的步驟。

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