LintCode-和大于S的最小子数组
来源:互联网 发布:意大利帅哥知乎 编辑:程序博客网 时间:2024/06/05 11:46
给定一个由 n 个整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。
您在真实的面试中是否遇到过这个题?Yes
样例
给定数组 [2,3,1,2,4,3]
和 s = 7
, 子数组 [4,3]
是该条件下的最小长度子数组。
挑战
标签 Expand 如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度。
相关题目 Expand
分析:数组的题目一般都是前缀和阿(对应O(nlgn)的解法),或者就是两根指针同方向走啊,或者反方向走啊什么的。。。
代码:
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 int ret = INT_MAX; int start = 0; int end = 0; int sum = 0; while(end<nums.size()) { sum+=nums[end]; if(sum>=s) { ret = min(ret,end-start+1); while(sum>=s&&start<=end) { ret = min(ret,end-start+1); sum-=nums[start]; start++; } } end++; } if(ret == INT_MAX) ret = -1; return ret; }};
1 0
- LintCode-和大于S的最小子数组
- lintcode-406-和大于S的最小子数组
- LintCode: 和大于S的最小子数组
- LintCode-和大于S的最小子数组
- lintcode(406)和大于S的最小子数组
- LintCode:M-和大于S的最小子数组
- 和大于S的最小子数组-LintCode
- lintcode--和大于s的最小数组
- 和大于S的最小子数组
- [Lintcode]Minimum Size Subarray Sum 和大于S的最小子数组
- lintcode刷题——和大于S的最小子数组
- 题目:和大于S的最小子数组
- 406. 和大于S的最小子数组
- 406.Minimum Size Subarray Sum-和大于S的最小子数组(中等题)
- LintCode--最小子数组
- lintcode ----最小子数组
- LintCode: 最小子数组
- lintcode--最小子数组
- 30-CSS-02-CSS(和html结合的方式三四)
- 网络流
- abap chain endchain
- 数据库之Case When
- 基于消息机制的异步架构之回调函数注册
- LintCode-和大于S的最小子数组
- Codeforces Round #315 -Primes or Palindromes?(回文&&素数)
- tableView从后往前传值
- Android项目中如何用好构建神器Gradle?
- 数据结构实验之链表五:单链表的拆分
- 30-CSS-03-CSS(基本选择器&优先级)
- 【转】在shell中捕捉信号的trap命令
- SolrCloud中的文件与Collection管理
- 数据结构(Java语言)——LinkedList简单实现