<LeetCode OJ>Minimum Size Subarray Sum【209】
2016-01-04 09:25
399 查看
209. Minimum Size Subarray Sum
My SubmissionsQuestion
Total Accepted: 26840 Total
Submissions: 105654 Difficulty: Medium
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.
click to show more
practice.
Credits:
Special thanks to @Freezen for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
Hide Tags
Array Two
Pointers Binary Search
Hide Similar Problems
(H) Minimum Window Substring
//思路首先:这个题目一来就应该想到应该一点一点累加恰好找到这个s的累加和,统计出长度 //所以接着缩小数据,再次找到恰好大于s的位置,更新最小长度,恰好是为了尽可能小 //具体:用一个迭代器慢ite1,一个迭代器快ite2 //如果当前序列的和小于s则ite2继续右移动(增加和),否则ite1右移动(相当于减小和) class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { if(nums.empty()) return 0; vector<int>::iterator ite1=nums.begin(); vector<int>::iterator ite2=ite1; int minLen=INT_MAX; int curSum=*ite1,curLen=1; while(true) { if(curSum >= s ) { if(curLen <minLen) minLen=curLen; curSum-=*ite1; ite1++; curLen--; continue; } ite2++; if(ite2==nums.end()) break; curLen++; curSum+=*ite2; } if(minLen==INT_MAX) return 0; return minLen; } };
别人家的写法(本质一样),O(N)的速度:
class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { int n = nums.size(), start = 0, sum = 0, minlen = INT_MAX; for (int i = 0; i < n; i++) { sum += nums[i]; while (sum >= s) { minlen = min(minlen, i - start + 1); sum -= nums[start++]; } } return minlen == INT_MAX ? 0 : minlen; } };
相关文章推荐
- jquery禁用某些字段
- vijos1055 奶牛浴场
- UIImageView裁剪成圆形的方法
- 【留言板】在这聊个天勾搭一下神犇之类的
- MYSQL 5.5 优化思路
- Mysql学习总结(6)——MySql之ALTER命令用法详细解读
- Mysql学习总结(6)——MySql之ALTER命令用法详细解读
- Mysql学习总结(6)——MySql之ALTER命令用法详细解读
- Android Studio R文件丢失 puzzle
- 使用beanutils动态排序
- springboot整合freemarker
- Windows10应用程序无法正常启动0xc000007b怎么解决
- ES6学习——新的语法:Arrow Functions
- Openstack的消息队列机制及其部分代码解析(非oslo.message)
- 关于AD9各种布线总结(很详细)
- 转:PHP 生成复杂JSON格式 简单快速方法
- Java中的封装
- Clean取出Excel多余双引号
- Cocos2D在Xcode7和iOS 9.2上IMP调用出错
- Cocos2D在Xcode7和iOS 9.2上IMP调用出错