406. 和大于S的最小子数组
来源:互联网 发布:赚钱红包软件秒到账 编辑:程序博客网 时间:2024/06/06 10:02
题目描述
给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组(连续)。如果无解,则返回 -1。
样例
给定数组 [2,3,1,2,4,3] 和 s = 7, 子数组 [4,3] 是该条件下的最小长度子数组
解题思路
设立两个不断移动的指针l和r,统计满足条件的[l,r]区间的最小值
代码
public class Main { /* * @param nums: an array of integers * @param s: An integer * @return: an integer representing the minimum size of subarray */ public int minimumSize(int[] nums, int s) { // write your code here int l = 0; int r = -1; int result = nums.length+1; int sum = 0 ; while (r!=nums.length){ if (sum>=s){ sum-=nums[l]; l++; } else if (sum<s){ r++; if(r<nums.length){ sum+=nums[r]; } } if (sum>=s){ result=Math.min(result,r-l+1); } } if (result==nums.length+1){ return -1; } return result; }}
阅读全文
0 0
- 和大于S的最小子数组
- 406. 和大于S的最小子数组
- LintCode-和大于S的最小子数组
- lintcode-406-和大于S的最小子数组
- 题目:和大于S的最小子数组
- LintCode: 和大于S的最小子数组
- LintCode-和大于S的最小子数组
- lintcode(406)和大于S的最小子数组
- LintCode:M-和大于S的最小子数组
- 和大于S的最小子数组-LintCode
- 406.Minimum Size Subarray Sum-和大于S的最小子数组(中等题)
- lintcode--和大于s的最小数组
- [Lintcode]Minimum Size Subarray Sum 和大于S的最小子数组
- lintcode刷题——和大于S的最小子数组
- 和大于100的子序列数
- 数组中,输出和为S的最小乘积
- 最大子数组和及最小子数组和
- Lintcode-贪心-最大子数组和最小子数组
- 1040. 有几个PAT(25) PAT乙级真题
- docker命令小结
- 深入浅出MyBatis-Sqlsession
- Eclipse怎么设置自动删除空白行和语句后多余空格?
- 面向对象
- 406. 和大于S的最小子数组
- 大咖讨论点击对seo排名的各种影响
- codeforces841E
- 欢迎使用CSDN-markdown编辑器
- 配置React Native的开发环境
- JavaSE 练习-File、字节流递归拷贝文件夹极其子文件夹和文件到目标文件夹中
- JAVA就业分析
- 运行异常:获取不到UI界面组件对象
- 《人工神经网络》读书笔记