首页 > 其他 > 详细

LeetCode() Minimun Size Subarray Sum

时间:2015-11-19 23:52:18      阅读:337      评论:0      收藏:0      [点我收藏+]

别人的代码

class Solution {
public:
    int minSubArrayLen(int s, vector<int>& nums) {
         int l, r, cum, res = nums.size()+1;
    l = r = cum = 0;
    while ((unsigned int)r < nums.size()) {
        cum += nums[r++];
        while (cum >= s) {
            res = min(res, r-l);
            cum -= nums[l++];
        }
    }
    return res<=nums.size()?res:0;
    }
};

我的 280ms

class Solution {
public:
    int minSubArrayLen(int s, vector<int>& nums) {
        vector<int> res;
        int start=0,end=0,len=INT_MAX;
        for(int end=0;end<nums.size();++end)
        {
             while(sum(nums,s,start,end) && start<=end)
             {
                 (end-start+1 < len)? len=end-start+1:len;
                 start++;
             }
        }
        if(len == INT_MAX)
            return 0;
        return len;
    }
    bool sum(vector<int>& nums,int s,int i,int j)
    {
        for(int k=i;k<=j;++k)
            s=s-nums[k];
        return s<=0;
    }
};

 

LeetCode() Minimun Size Subarray Sum

原文:http://www.cnblogs.com/yanqi110/p/4979348.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!