首页 > 编程语言 > 详细

209. 长度最小的子数组

时间:2020-04-04 19:59:16      阅读:53      评论:0      收藏:0      [点我收藏+]
 1 //跟LeetCode3类似
 2 class Solution 
 3 {
 4 public:
 5     int minSubArrayLen(int s, vector<int>& nums) 
 6     {
 7         //如果为空,直接返回0
 8         if(nums.empty()) return 0;
 9         int res = 0;
10         for(auto a : nums) res += a;
11         //如果数组总和小于s,直接返回0
12         if(res < s) return 0;
13 
14         res = 0;
15         int len = INT_MAX;
16         int n = nums.size();
17         int begin = 0;
18         for(int i = 0;i < n;i ++)
19         {   
20             res += nums[i];
21             while(res >= s)
22             {
23                 len = min(len,i - begin + 1);
24                 res -= nums[begin++];
25             }
26         }
27         len = min(len,n - begin + 1);
28         return len;
29     }
30 };

 

209. 长度最小的子数组

原文:https://www.cnblogs.com/yuhong1103/p/12633217.html

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