您的位置:首页 > 其它

leetcode.209. Minimum Size Subarray Sum

2016-05-09 22:57 99 查看
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.

class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
if(nums.size()==0||s<0)
return 0;

int start = 0;
int end = 0;

int sum = 0;
int len = INT_MAX;

while(start<nums.size() && end<nums.size()) {
while(sum<s && end<nums.size()) {
sum += nums[end++];
}
while(sum>=s && start<=end) {
len = min(len,end-start);
sum -= nums[start++];
}
}

return len == INT_MAX ? 0 : len;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: