[LeetCode]Minimum Size Subarray Sum

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

 

posted @ 2015-12-04 07:34  Weizheng_Love_Coding  阅读(112)  评论(0)    收藏  举报