Minimum Size Subarray Sum
public class Solution {
    public int minSubArrayLen(int s, int[] nums) {
        if (nums == null || nums.length <1) {
            return 0;
        }
        int ptr1 = 0;
        int ptr2 = 0;
        int sum = nums[0];
        int result = Integer.MAX_VALUE;
        while (ptr2 < nums.length) {
            if (ptr1 == ptr2) {
                if (sum >= s) {
                    return 1;
                }
                ptr2++;
                if (ptr2 < nums.length) {
                    sum += nums[ptr2];
                } else {
                    return result;
                }
            } else {
                if (sum >= s) {
                    result = Math.min(ptr2 - ptr1 + 1, result);
                    sum -= nums[ptr1];
                    ptr1++;                    
                } else {
                    ptr2++;
                    if (ptr2 < nums.length) {
                        sum += nums[ptr2];
                    } else {
                        if (ptr1 == 0) {
                            return 0;
                        } else {
                            return result;
                        }
                    }                
                }
            }
        }
        return result;
    }
}

阅读更多
个人分类: Leetcode 刷题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Minimum Size Subarray Sum

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭