leetcode-Minimum Size Subarray Sum-209
输入一个数组和一个数s,求数组中的子数组的连续和>=s中最短的子数组
第一次的做法是:
先处理前缀和,然后二重循环枚举子数组,用前缀和sum[j]-sum[i-1]取得子数组的连续和,与s比较,更新答案。ON^2,超时
第二次做法:
既然ON^2超时,说明肯定是NlgN或者ON的做法,这题数组无序而且也不能排序之后做,所以也不可能是NlgN的做法,那么只有ON的做法,于是想到指针法
用两个指针i,j,初始都指向数组的第一个元素,然后遍历数组,求和:
1.sum>=s,更新答案,并且i++,注意i==j的情况要i++,j++
2.sum<s,说明现在和还不够,所以j++
1 class Solution { 2 public: 3 int minSubArrayLen(int s, vector<int>& nums) { 4 int len=nums.size(); 5 if(len==0) return 0; 6 int i=0,j=0; 7 int sum=nums[0]; 8 int ans=INT_MAX; 9 while(j<len){ 10 if(sum<s){ 11 sum+=nums[++j]; 12 } 13 else if(sum>=s){ 14 sum-=nums[i]; 15 ans=min(ans,j-i+1); 16 if(i==j){ 17 i++; 18 j++; 19 } 20 else i++; 21 } 22 } 23 if(ans!=INT_MAX) return ans; 24 return 0; 25 } 26 };
转载于:https://www.cnblogs.com/0summer/p/5829694.html
leetcode-Minimum Size Subarray Sum-209相关推荐
- leetcode 209. Minimum Size Subarray Sum | 209. 长度最小的子数组(Java)
题目 https://leetcode.com/problems/minimum-size-subarray-sum/ 题解 双指针解法,左指针和右指针在合适的时候向右走,并维护一个sum 版本1 思 ...
- [LintCode] Minimum Size Subarray Sum 最小子数组和的大小
Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...
- Minimum Size Subarray Sum 最短子数组之和
题意 Given an array of n positive integers and a positive integer s, find the minimal length of a suba ...
- 209. Minimum Size Subarray Sum 长度最小的子数组
Title 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0. **示例: ** 输入: ...
- [JAVA]寻找满足和的最短子序列(Minimum Size Subarray Sum)
题目来源:leetcode 题目描述: Given an array of n positive integers and a positive integer s, find the minimal ...
- LeetCode 523. Continuous Subarray Sum
题目: Given a list of non-negative numbers and a target integer k, write a function to check if the ar ...
- LeetCode 325. Maximum Size Subarray Sum Equals k
这一题开始以为是sliding window,后来发现,因为有负数,sum不具有单调性,没有办法用slidng window找出optimal solution. 如果考虑brute force的做法 ...
- Leetcode209-Minimum Size Subarray Sum
新的个人博客:Hu Haoyu's Blog,欢迎参观! Given an array of n positive integers and a positive integer s, find th ...
- leetcode 523. Continuous Subarray Sum | 523. 连续的子数组和(同余定理)
题目 https://leetcode.com/problems/continuous-subarray-sum/ 题解 没有想到 O(n) 的方法,于是直奔答案: 参考1:[宫水三叶]拓展到求方案数 ...
- LeetCode Subarray Sum Equals K
原题链接在这里:https://leetcode.com/problems/subarray-sum-equals-k/description/ 题目: Given an array of integ ...
最新文章
- SQL repeat()函数
- OpenCV下的角点获取
- 河南省第十三届ICPC大学生程序设计竞赛 【部分题题解】
- [数分提高]2014-2015-2第8教学周第1次课 (2015-04-21)
- JAVA代码实现按列表中元素的时间字段排序
- 甲骨文发布Java 8
- SQL基础知识:DDL、DML、DQL
- jmespath查找JSON的工具
- 大数据之-Hadoop环境搭建_hadoop目录结构---大数据之hadoop工作笔记0019
- php爬虫伪造请求头,Nodejs 伪造IP 爬取图片
- Matlab 2015b安装教程
- 方舟生存进化秘籍大全
- 32位,64位系统寻址空间及最大内存
- Cesium中的Heading/Pitch/Roll详解
- ftp上传工具 绿色,4个好用的绿色 ftp上传工具
- 网站ICP备案与公安备案有什么区别---kalrry
- matplotlib的cmap
- 双非本23秋招之路-从考研跑路到某安全大厂(无实习、项目)
- python计算召回率_分词结果准确率、召回率计算-python
- 会计学利用计算机思维,会计思维确定性