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. 长度最小的子数组(滑动窗口)相关推荐

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

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

  2. [Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]

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

  3. leet209. 长度最小的子数组 滑动窗口

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

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

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

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

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

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

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

  7. 长度最小的子数组--滑动窗口

    暴力法 两个for循环,然后不断的寻找符合条件的子序列,时间复杂度很明显是O(n^2) . 时间复杂度:O(n^2) 空间复杂度:O(1) class Solution {public:int min ...

  8. leetcode209. 长度最小的子数组(滑动窗口)

    一:题目 二:上码 class Solution {public:/**思路:1.滑动窗口解法1>:确定窗口内是什么2>:确定窗口的起始位置3>:确定窗口的终止位置2.窗口:也就是我 ...

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

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

最新文章

  1. ICCV2021最佳检测之一:主动学习框架较大提升目标检测精度(附论文下载)
  2. 他是第一个到达学校的人英语_日本留学:不需要英语成绩的大学盘点·私立学部篇(第三弹)...
  3. 除了密钥,公有云还有哪些安全保护方式
  4. linux c ping 分析实现
  5. AndroidFFmpeg
  6. shell脚本--字符串处理和动态数组
  7. 代表中国为世界做出探索,杭州城市大脑获IDC亚太区智慧城市大奖
  8. 计算机组成要素二:布尔运算:ALU算术运算器
  9. android 常用注解,Android 开发小工具之:注解 Annotation
  10. HTML之图片标签、音视频标签
  11. python里面Dataset干嘛的_用 Python 对成绩分类汇总!
  12. 删缓存,数据库更新谁先执行,及延时双删
  13. 2016年开源巨献:来自百度的71款开源项目
  14. 加解密算法 之base64 原理
  15. 很多人看都哭了,不信你不哭
  16. 不会英语能学java_不会英语可以学java吗 不会英语怎么学java?
  17. 「TJOI 2018」碱基序列
  18. Rust 正则表达式 Regex
  19. 如何处理u盘一插进电脑就自动打开里面的所有文件夹
  20. 华东师范大学张凯教授课题组招收图神经网络方向博士生

热门文章

  1. 剔除服务器返回的NSNull格式的数据
  2. 第七季2:MP4v2库的移植与播放实战
  3. RabbitMQ的消息确认机制
  4. java基础之线程(1)
  5. Bootstrap全局CSS样式之表单
  6. mysqldump 定时备份数据(全量)
  7. magento tab(easy tables)标签应用
  8. CF 46D Parking Lot
  9. Linux CPU 信息查看
  10. .net连接MYSQL数据库方法一