leetcode_minimum_size_subarray_sum

难度:Meidum

遍历数组,分别计算以该元素为结尾的,满足条件的子数组的最小长度。维护一个全局最小值,进行更新。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
int sum = 0;
int start = 0;
int minimum = 0;
for(int i = 0; i < nums.size(); i++)
{
sum+=nums[i];
if(sum >= s)
{
while((sum-nums[start]) >= s)
{
sum -= nums[start];
start++;
}
if(minimum == 0)
minimum = i-start+1;
else
minimum = min(minimum, i-start+1);
}
}
return minimum;
}
};

运行结果:6ms,超过20.22%