传送门:力扣

给定一个含有 n 个正整数的数组和一个正整数 target 。

找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 1:

输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。
示例 2:

输入:target = 4, nums = [1,4,4]
输出:1
示例 3:

输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

提示:

1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105

滑动窗口的思想,一开始两个指针放在起始部位。快指针不断向前,sum累加,直到sum超过目标target就进入while循环去移动慢指针。

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
using namespace std;class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int result = INT_MAX;//防止subLength超过int的最大范围10的九次方。int sum = 0;int i = 0; int j = 0;int subLength = 0;for (j = 0; j < nums.size(); j++) {sum += nums[j];while (sum >= target) {subLength = j - i + 1;result = result < subLength ? result : subLength;//通过三目表达式来更新result,如果subLength超过最大整型长度,就让result保持INT_MAX;sum -= nums[i++];//通过while循环去更新i和subLength}}return result == INT_MAX ? 0 : result;//返回判断,result == INTMAX代表没有更新。说明没有找到这个值,返回零}
};

Leetcode 209.长度最小子序列(滑动窗口)相关推荐

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

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

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

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  3. LeetCode—209. 长度最小的子数组

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

  4. LeetCode——209.长度最小的子数组

    https://leetcode-cn.com/problems/minimum-size-subarray-sum/submissions/ @代码随想录 1.暴力解法 class Solution ...

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

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

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

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

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

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

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

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

  9. leetcode —— 209. 长度最小的子数组

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

最新文章

  1. 【s操作】轻松优雅的保存微信群图片和朋友圈图片
  2. day18-事务与连接池 3.jdbc中事务操作介绍
  3. 10个 DIV+CSS 需要注意的问题
  4. 安卓手机浏览器排行_安卓手机双11性价比排行发布|拯救者手机发透明版|小米发大光圈手机镜头...
  5. 我的Go+语言初体验——(1)超详细安装教程
  6. 一种SPA(单页面应用)架构
  7. 查看Linux系统运行状态(命令汇总)
  8. 安装hadoop1.2.1(参考hadoop实战第二版)
  9. UVa834 Continued Fractions【连分数】
  10. ASP.NET 氚云平台集成Dome
  11. 2021 大学生电子设计竞赛 G题 无人机 识别部分
  12. k3导入账套_K3金蝶维护绝密(内部技术教程)
  13. MATLAB中图像模式转换
  14. (转)HBase WAL简介
  15. mysql4.0事务_聊一聊 MySQL 中的事务及其实现原理
  16. 如何用关键字优化网站?
  17. ubuntu系统出错且无法恢复请联系管理员(A problem has occurred and the system can‘t recover,please contact the admini)
  18. matlab 线性系统响应,MATLAB线性系统时域响应分析实验
  19. 分布式.RPC-WebService入门案例(java实现,注解实现,xsd文件解析,wsdl文件解析)
  20. 单片机编程中,如何用串口调试助手直接打印出十进制数

热门文章

  1. 【转载保存】Lucene7.1.0超详细的使用文档
  2. CNN(Convolutional Neural Network) 的基础
  3. Win10下VS2015(WDK10)驱动开发环境配置
  4. 阿里云张献涛:公共云正不断向外延伸,一云多态是未来趋势
  5. ADBPGGreenplum成本优化之磁盘水位管理
  6. 一场关于动态化开发实践的技术探讨
  7. 阿里宜搭重磅发布专有云版本、精品应用市场,助力政企数字化转型
  8. 它是真实的“盗梦空间”?在这里,一切都可能是数据
  9. 与你同行,才能无障碍
  10. 服务化改造的云上利器 | 阿里云 EDAS 重大升级发布