Leetcode 209.长度最小子序列(滑动窗口)
传送门:力扣
给定一个含有 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.长度最小子序列(滑动窗口)相关推荐
- LeetCode 209. 长度最小的子数组 (滑动窗口)
LeetCode 209. 长度最小的子数组 class Solution {public int minSubArrayLen(int s, int[] nums) {int start = 0;i ...
- 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II
LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...
- LeetCode—209. 长度最小的子数组
209. 长度最小的子数组 题目描述:给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ...
- LeetCode——209.长度最小的子数组
https://leetcode-cn.com/problems/minimum-size-subarray-sum/submissions/ @代码随想录 1.暴力解法 class Solution ...
- 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 209. 长度最小的子数组 解题思路及C++实现
解题思路: 定义两个指针 left 和 right,构成一个滑动窗口,当窗口内的数值和小于 s 时,右指针向右滑动,当窗口内的数值和大于等于 s 时,就要更新一次 子数组的最小长度了.同时 左指针向右 ...
- leetcode —— 209. 长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, num ...
最新文章
- 【s操作】轻松优雅的保存微信群图片和朋友圈图片
- day18-事务与连接池 3.jdbc中事务操作介绍
- 10个 DIV+CSS 需要注意的问题
- 安卓手机浏览器排行_安卓手机双11性价比排行发布|拯救者手机发透明版|小米发大光圈手机镜头...
- 我的Go+语言初体验——(1)超详细安装教程
- 一种SPA(单页面应用)架构
- 查看Linux系统运行状态(命令汇总)
- 安装hadoop1.2.1(参考hadoop实战第二版)
- UVa834 Continued Fractions【连分数】
- ASP.NET 氚云平台集成Dome
- 2021 大学生电子设计竞赛 G题 无人机 识别部分
- k3导入账套_K3金蝶维护绝密(内部技术教程)
- MATLAB中图像模式转换
- (转)HBase WAL简介
- mysql4.0事务_聊一聊 MySQL 中的事务及其实现原理
- 如何用关键字优化网站?
- ubuntu系统出错且无法恢复请联系管理员(A problem has occurred and the system can‘t recover,please contact the admini)
- matlab 线性系统响应,MATLAB线性系统时域响应分析实验
- 分布式.RPC-WebService入门案例(java实现,注解实现,xsd文件解析,wsdl文件解析)
- 单片机编程中,如何用串口调试助手直接打印出十进制数
热门文章
- 【转载保存】Lucene7.1.0超详细的使用文档
- CNN(Convolutional Neural Network) 的基础
- Win10下VS2015(WDK10)驱动开发环境配置
- 阿里云张献涛:公共云正不断向外延伸,一云多态是未来趋势
- ADBPGGreenplum成本优化之磁盘水位管理
- 一场关于动态化开发实践的技术探讨
- 阿里宜搭重磅发布专有云版本、精品应用市场,助力政企数字化转型
- 它是真实的“盗梦空间”?在这里,一切都可能是数据
- 与你同行,才能无障碍
- 服务化改造的云上利器 | 阿里云 EDAS 重大升级发布