leetcode-Minimum Size Subarray Sum

来源:互联网 发布:简易数控折弯机编程 编辑:程序博客网 时间:2024/05/21 10:52

Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, return 0 instead.

For example, given the array [2,3,1,2,4,3] and s = 7,
the subarray [4,3] has the minimal length under the problem constraint.

cclass Solution {public:    int minSubArrayLen(int s, vector<int>& nums) {        if(nums.size()<=0) return 0;        int minlen=nums.size()+1,sum=nums[0],first=0,second=0;        while(first<=second)        {            if(sum>=s)            {                if(second-first+1<minlen) minlen=second-first+1;                sum-=nums[first];                first++;            }            else            {                second++;                if(second<nums.size())                    sum+=nums[second];                else                    break;            }        }        if(minlen!=nums.size()+1)            return minlen;        else            return 0;    }};


0 0
原创粉丝点击