LeetCode 209. 长度最小的子数组(滑动窗口)
1. 题目
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。
如果不存在符合条件的连续子数组,返回 0。
示例: 输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 滑动窗口解题
- 贪心思想
- 总和大了,sum减去左边界,左端边界+1
- 总和小了,右边界+1,sum加上右边界
class Solution { //C++
public:int minSubArrayLen(int s, vector<int>& nums) {if(nums.size() == 0)return 0;int i = 0, j = 0, len = INT_MAX, sum = nums[0];while(j < nums.size()){if(sum < s){j++;if(j < nums.size())sum += nums[j];}else if(sum >= s){if(j-i+1 < len)len = j-i+1;sum -= nums[i];i++;}}if(len == INT_MAX)return 0;return len;}
};
class Solution:# py3def minSubArrayLen(self, s: int, nums: List[int]) -> int:minlen = float('inf')l, r, ans = 0, 0, 0for r in range(len(nums)):ans += nums[r]while ans >= s:minlen = min(minlen, r-l+1)ans -= nums[l]l += 1return minlen if minlen!=float('inf') else 0
48 ms 15.3 MB
LeetCode 209. 长度最小的子数组(滑动窗口)相关推荐
- LeetCode 209. 长度最小的子数组 (滑动窗口)
LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...
- [Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]
[问题描述][中等] 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0.示例: 输入: ...
- leet209. 长度最小的子数组 滑动窗口
题目: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度.如果不存在符合条件的子数组,返回 0. 示例: 输入:s = 7, ...
- 10. Leetcode 209. 长度最小的子数组 (数组-同向双指针-滑动窗口)
给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr ...
- LeetCode 209. 长度最小的子数组(双指针+滑动窗口)
题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums ...
- Leetcode 209. 长度最小的子数组 解题思路及C++实现
解题思路: 定义两个指针 left 和 right,构成一个滑动窗口,当窗口内的数值和小于 s 时,右指针向右滑动,当窗口内的数值和大于等于 s 时,就要更新一次 子数组的最小长度了.同时 左指针向右 ...
- 长度最小的子数组--滑动窗口
暴力法 两个for循环,然后不断的寻找符合条件的子序列,时间复杂度很明显是O(n^2) . 时间复杂度:O(n^2) 空间复杂度:O(1) class Solution {public:int min ...
- leetcode209. 长度最小的子数组(滑动窗口)
一:题目 二:上码 class Solution {public:/**思路:1.滑动窗口解法1>:确定窗口内是什么2>:确定窗口的起始位置3>:确定窗口的终止位置2.窗口:也就是我 ...
- 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II
LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...
最新文章
- ICCV2021最佳检测之一:主动学习框架较大提升目标检测精度(附论文下载)
- 他是第一个到达学校的人英语_日本留学:不需要英语成绩的大学盘点·私立学部篇(第三弹)...
- 除了密钥,公有云还有哪些安全保护方式
- linux c ping 分析实现
- AndroidFFmpeg
- shell脚本--字符串处理和动态数组
- 代表中国为世界做出探索,杭州城市大脑获IDC亚太区智慧城市大奖
- 计算机组成要素二:布尔运算:ALU算术运算器
- android 常用注解,Android 开发小工具之:注解 Annotation
- HTML之图片标签、音视频标签
- python里面Dataset干嘛的_用 Python 对成绩分类汇总!
- 删缓存,数据库更新谁先执行,及延时双删
- 2016年开源巨献:来自百度的71款开源项目
- 加解密算法 之base64 原理
- 很多人看都哭了,不信你不哭
- 不会英语能学java_不会英语可以学java吗 不会英语怎么学java?
- 「TJOI 2018」碱基序列
- Rust 正则表达式 Regex
- 如何处理u盘一插进电脑就自动打开里面的所有文件夹
- 华东师范大学张凯教授课题组招收图神经网络方向博士生