和大于S的最小子数组-LintCode
来源:互联网 发布:慈溪行知职高地址全称 编辑:程序博客网 时间:2024/06/05 05:11
给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。
样例:
给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组。
挑战 :
如果你已经完成了O(n)时间复杂度的编程,请再试试 O(n log n)时间复杂度。
#ifndef C406_H#define C406_H#include<iostream>#include<vector>using namespace std;class Solution {public: /* * @param nums: an array 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 num = INT_MAX; int start = 0, end = 0; int len = nums.size(); int sum = 0; while (end < len) { sum += nums[end]; if (sum >= s) { num = minVal(num, end - start + 1); while (sum >= s&&start <= end) { num = minVal(num, end - start + 1); sum -= nums[start]; start++; } } end++; } return num == INT_MAX ? -1 : num; } int minVal(int a, int b) { return a < b ? a : b; }};#endif
阅读全文
0 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--最小子数组
- Android逆向反调试练习
- opencv学习一: Fourier变换
- python中的单例
- bzoj 1296 [SCOI2009]粉刷匠 (dp)
- 六、tensorflow之添加层。
- 和大于S的最小子数组-LintCode
- ACdream 1157 Segments(cdq分治)
- 对称密码
- android adapter控件及高级控件
- 深度学习所需的python-学习笔记4
- 安卓获取手机短信(Contentprovider)
- 最短路径—Dijkstra算法(C#)
- 无线自动轮播,获取网络上的图片+scrollView+listView 联动
- 74HC573芯片介绍