lintcode-406-和大于S的最小子数组
2015-09-04 23:35
204 查看
给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。
您在真实的面试中是否遇到过这个题?
Yes
样例
给定数组
=
挑战
如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度。
您在真实的面试中是否遇到过这个题?
Yes
样例
给定数组
[2,3,1,2,4,3]和 s
=
7, 子数组
[4,3]是该条件下的最小长度子数组。
挑战
如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度。
class Solution { public: /** * @param nums: a vector of integers * @param s: an integer * @return: an integer representing the minimum size of subarray */ int minimumSize(vector<int> &nums, int s) { // write your code here if(nums.empty()) return -1; int result=INT_MAX,begin=0,end=0,size=nums.size(),sum=0; while(end<size){ sum+=nums[end]; while(sum>=s&&end>=begin){ if(result>end-begin+1) result=end-begin+1; sum-=nums[begin]; ++begin; } ++end; } return result==INT_MAX?-1:result; } };
相关文章推荐
- 基于C#的socket编程的TCP异步实现
- usaco Money Systems
- nagios服务端安装
- NYOJ 18 The Triangle(简单dp)
- HDU 5001 Walk(2014年鞍山赛区网络赛E题)
- java安全沙箱(四)之安全管理器及Java API
- AI (Adobe Illustrator)详细用法(四)
- nagios客户端安装
- 2002-2003 ACM-ICPC Northeastern European Regional Contest (NEERC 02)
- 技嘉B75-D3V主板BUG
- PTA 数据结构与算法题目集 5-1 最大子列和问题
- 1002. 写出这个数 (20)
- C#调用C++
- Android Source:优雅的repo sync自动重试
- 3Sum
- C#高性能大容量SOCKET并发(五):粘包、分包、解包
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- nagios原理及配置详解
- Java 8函数式编程学习笔记
- 笔试题:求和为sum的连续数列