
难度: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%
近期评论