Leetcode 209. 长度最小的子数组 解题思路及C++实现
解题思路:
定义两个指针 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++实现相关推荐
- LeetCode 209. 长度最小的子数组 (滑动窗口)
LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...
- LeetCode 209. 长度最小的子数组(滑动窗口)
1. 题目 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组. 如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, num ...
- 10. Leetcode 209. 长度最小的子数组 (数组-同向双指针-滑动窗口)
给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr ...
- LeetCode 209. 长度最小的子数组(双指针+滑动窗口)
题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums ...
- 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II
LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...
- 209. 长度最小的子数组(中等 数组 滑动窗口)
209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, -, n ...
- 【宫水三叶的刷题日记】209. 长度最小的子数组(中等)
题目描述 这是 LeetCode 上的 209. 长度最小的子数组 ,难度为 中等. Tag : 「前缀和」.「二分」 给定一个含有 n 个正整数的数组和一个正整数 target. 找出该数组中满足其 ...
- 代码随想录算法训练营第二天 | LeetCode977有序数组的平方 、209长度最小的子数组、 59.螺旋矩阵II
--------------------------- 977.有序数组的平方 #include <iostream> #include <algorithm> #includ ...
- 209 长度最小的子数组(双指针)
1. 问题描述: 给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的连续子数组 [numsl, numsl+1, ..., numsr- ...
最新文章
- mysql中enum类型
- 解决debian apt-get upgrade 错误triggers ci file contains unknown directive `interest-noawait'
- 【Git】Git 基础命令 ( 添加暂存文件 git add | 提交文件至版本库 git commit | 查看版本库状态 git status | 查询文件修改 git diff )
- Laravel Scheduling Package
- 让Windows 7揪出每一个暗中运行程序
- 字符编码转换_进制转换(GB2312,GBK,JNI,HexTOStr)
- 谷歌开源下一代推荐系统模拟器:RecSim NG
- HDU - 1890 Robotic Sort(Splay-区间翻转+删除根节点)
- nodejs 定时 mysql_nodejs 使用 mysql
- [react] 怎样动态导入组件?
- Pygal简单使用——模拟掷骰子
- 在VUE项目中使用SCSS,从安装步骤到语法说明,带你快速入门!!
- 【华为云技术分享】华为专家亲述:如何转型搞 AI?
- BZOJ4199 NOI2015品酒大会(后缀树)
- canvas beginPath()的初步理解
- Atitit 项目范围管理 目录 1. 应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制	1 1.1. 项目范围管理的五个过程	1 2. 启动过程	1 2.1. 项目章程(如质量、
- MATLAB调用C语言程序—一个简单的例子
- C语言这么厉害,它自身又是用什么语言写的?
- 背了单词再也不怕忘,多邻国的AI要逆天!
- 全球与中国琴键式拨码开关市场现状及未来发展趋势