输入一个数组和一个数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相关推荐

  1. leetcode 209. Minimum Size Subarray Sum | 209. 长度最小的子数组(Java)

    题目 https://leetcode.com/problems/minimum-size-subarray-sum/ 题解 双指针解法,左指针和右指针在合适的时候向右走,并维护一个sum 版本1 思 ...

  2. [LintCode] Minimum Size Subarray Sum 最小子数组和的大小

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...

  3. Minimum Size Subarray Sum 最短子数组之和

    题意 Given an array of n positive integers and a positive integer s, find the minimal length of a suba ...

  4. 209. Minimum Size Subarray Sum 长度最小的子数组

    Title 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0. **示例: ** 输入: ...

  5. [JAVA]寻找满足和的最短子序列(Minimum Size Subarray Sum)

    题目来源:leetcode 题目描述: Given an array of n positive integers and a positive integer s, find the minimal ...

  6. 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 ...

  7. LeetCode 325. Maximum Size Subarray Sum Equals k

    这一题开始以为是sliding window,后来发现,因为有负数,sum不具有单调性,没有办法用slidng window找出optimal solution. 如果考虑brute force的做法 ...

  8. Leetcode209-Minimum Size Subarray Sum

    新的个人博客:Hu Haoyu's Blog,欢迎参观! Given an array of n positive integers and a positive integer s, find th ...

  9. leetcode 523. Continuous Subarray Sum | 523. 连续的子数组和(同余定理)

    题目 https://leetcode.com/problems/continuous-subarray-sum/ 题解 没有想到 O(n) 的方法,于是直奔答案: 参考1:[宫水三叶]拓展到求方案数 ...

  10. LeetCode Subarray Sum Equals K

    原题链接在这里:https://leetcode.com/problems/subarray-sum-equals-k/description/ 题目: Given an array of integ ...

最新文章

  1. SQL repeat()函数
  2. OpenCV下的角点获取
  3. 河南省第十三届ICPC大学生程序设计竞赛 【部分题题解】
  4. [数分提高]2014-2015-2第8教学周第1次课 (2015-04-21)
  5. JAVA代码实现按列表中元素的时间字段排序
  6. 甲骨文发布Java 8
  7. SQL基础知识:DDL、DML、DQL
  8. jmespath查找JSON的工具
  9. 大数据之-Hadoop环境搭建_hadoop目录结构---大数据之hadoop工作笔记0019
  10. php爬虫伪造请求头,Nodejs 伪造IP 爬取图片
  11. Matlab 2015b安装教程
  12. 方舟生存进化秘籍大全
  13. 32位,64位系统寻址空间及最大内存
  14. Cesium中的Heading/Pitch/Roll详解
  15. ftp上传工具 绿色,4个好用的绿色 ftp上传工具
  16. 网站ICP备案与公安备案有什么区别---kalrry
  17. matplotlib的cmap
  18. 双非本23秋招之路-从考研跑路到某安全大厂(无实习、项目)
  19. python计算召回率_分词结果准确率、召回率计算-python
  20. 会计学利用计算机思维,会计思维确定性

热门文章

  1. CSS学习笔记(十四) 我们前端是怎么跟设计师沟通的
  2. nodejs实战案例(Express框架+mongoDB)——(1)——前言
  3. 点滴积累【C#】---操作文件
  4. CodeIgniter笔记4
  5. 光有面罩不是能防护的
  6. reciprocity
  7. 软件开发的“黑名单”规则设定:benchmark
  8. 一种新的在线学习的方法:能够克服单人多任务学习的困难!
  9. 当一个事情过度的艳丽的时候就是一个衰败的开始
  10. 怎样查看rpm安装包的安装路径