解题思路:

定义两个指针 left 和 right,构成一个滑动窗口,当窗口内的数值和小于 s 时,右指针向右滑动,当窗口内的数值和大于等于 s 时,就要更新一次 子数组的最小长度了。同时 左指针向右滑动。

class Solution {
public:int minSubArrayLen(int s, vector<int>& nums) {if(nums.empty()) return 0;int res = INT_MAX;int left = 0;   //滑动窗口的左指针int right = 0;  //滑动窗口的右指针int sum = 0;while(right < nums.size()){if(sum + nums[right] < s){sum += nums[right];right++;}else{res = min(res, right-left+1);sum = sum - nums[left];left++;}}if(res == INT_MAX) res = 0;return res;}
};

Leetcode 209. 长度最小的子数组 解题思路及C++实现相关推荐

  1. LeetCode 209. 长度最小的子数组 (滑动窗口)

    LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...

  2. LeetCode 209. 长度最小的子数组(滑动窗口)

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

  3. 10. Leetcode 209. 长度最小的子数组 (数组-同向双指针-滑动窗口)

    给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr ...

  4. LeetCode 209. 长度最小的子数组(双指针+滑动窗口)

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

  5. 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

    LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...

  6. 209. 长度最小的子数组(中等 数组 滑动窗口)

    209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, -, n ...

  7. 【宫水三叶的刷题日记】209. 长度最小的子数组(中等)

    题目描述 这是 LeetCode 上的 209. 长度最小的子数组 ,难度为 中等. Tag : 「前缀和」.「二分」 给定一个含有 n 个正整数的数组和一个正整数 target. 找出该数组中满足其 ...

  8. 代码随想录算法训练营第二天 | LeetCode977有序数组的平方 、209长度最小的子数组、 59.螺旋矩阵II

    --------------------------- 977.有序数组的平方 #include <iostream> #include <algorithm> #includ ...

  9. 209 长度最小的子数组(双指针)

    1. 问题描述: 给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的连续子数组 [numsl, numsl+1, ..., numsr- ...

最新文章

  1. mysql中enum类型
  2. 解决debian apt-get upgrade 错误triggers ci file contains unknown directive `interest-noawait'
  3. 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
  4. Laravel Scheduling Package
  5. 让Windows 7揪出每一个暗中运行程序
  6. 字符编码转换_进制转换(GB2312,GBK,JNI,HexTOStr)
  7. 谷歌开源下一代推荐系统模拟器:RecSim NG
  8. HDU - 1890 Robotic Sort(Splay-区间翻转+删除根节点)
  9. nodejs 定时 mysql_nodejs 使用 mysql
  10. [react] 怎样动态导入组件?
  11. Pygal简单使用——模拟掷骰子
  12. 在VUE项目中使用SCSS,从安装步骤到语法说明,带你快速入门!!
  13. 【华为云技术分享】华为专家亲述:如何转型搞 AI?
  14. BZOJ4199 NOI2015品酒大会(后缀树)
  15. canvas beginPath()的初步理解
  16. Atitit 项目范围管理 目录 1. 应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制 1 1.1. 项目范围管理的五个过程 1 2. 启动过程 1 2.1. 项目章程(如质量、
  17. MATLAB调用C语言程序—一个简单的例子
  18. C语言这么厉害,它自身又是用什么语言写的?
  19. 背了单词再也不怕忘,多邻国的AI要逆天!
  20. 全球与中国琴键式拨码开关市场现状及未来发展趋势

热门文章

  1. java core日志在哪里_java-如何在未启用日志记录功能的情况下在...
  2. Linux 安全基线
  3. hdu 2005 第几天?(c语言)
  4. leetcode 反转字符串
  5. Confluence 6 复杂授权或性能问题
  6. LeetCode 508. Most Frequent Subtree Sum
  7. Linux内存信息查看——free命令
  8. tkinter学习-菜单与画布
  9. IEnumerable和IEnumerator 详解
  10. Screened Poisson Surface Reconstruction