当前位置:网站首页>力扣209-长度最小的字符串——滑动窗口法
力扣209-长度最小的字符串——滑动窗口法
2022-08-02 11:41:00 【张怼怼√】
题目描述
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
解题思路
- 卡哥生动的滑动窗口法题解;
- 首先创建两个指针first 和 last 指向nums的 首部;
- 移动右指针,每移动一次考虑 first------last之间的值是否满足 >= target 的条件;
- 如果不满足,则 last 继续向右移动;
- 如果满足,则 first 指针向右移动;
- 统计每次满足条件的 first-----last之间的元素的个数,记录最小值,返回最小值。
- 在返回的时候应当加上判断条件看是否满足了sum条件,如果没有满足sum条件,最小值也没有更新,返回0.
输入输出示例
代码
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int len = nums.length;
int first = 0;
int sum = 0;
int min = Integer.MAX_VALUE;
for(int last = 0; last < len; last++){
sum += nums[last];
while(sum >= target){
min = Math.min(min,last-first+1);
sum -= nums[first++];
}
}
return min == Integer.MAX_VALUE ? 0 : min;
}
}
边栏推荐
- ASP.NET Core 6框架揭秘实例演示[31]:路由&ldquo;高阶&rdquo;用法
- Excel动态图制作
- 打破千篇一律,DIY属于自己独一无二的商城
- When not to use () instead of Void in Swift
- ECCV22|PromptDet:无需手动标注,迈向开放词汇的目标检测
- 企业级数据治理工作怎么开展?Datahub这样做
- MapStruct
- 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
- Crack detection technology based on deep learning
- 中原银行实时风控体系建设实践
猜你喜欢
5G网络切片技术
喜迎八一 《社会企业开展应聘文职人员培训规范》团体标准出版发行会暨橄榄枝大课堂上线发布会在北京举行
X86函数调用模型分析
How to technically ensure the quality of LED display?
LeetCode每日一练 —— 20. 有效的括号
解决anaconda下载pytorch速度极慢的方法
面积曲线AUC(area under curve)
When not to use () instead of Void in Swift
[kali-information collection] (1.9) Metasploit + search engine tool Shodan
excel 批量翻译-excel 批量函数公司翻译大全免费
随机推荐
基于threejs的商品VR展示平台的设计与实现思路
excel 批量翻译-excel 批量函数公司翻译大全免费
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
Mysql transaction isolation level and MVCC (multi-version concurrency control)
yolo格式(txt)数据集转VOC(xml)
当POC遇见RPA:RPA项目顺利实施的关键
Excel动态图制作
21 Days Learning Challenge - Day 1 Punch (Screen Density)
暑期总结3
Mysql事务隔离级别与MVCC(多版本并发控制)
Crack detection technology based on deep learning
半夜赶工制作简报的我好想说 : 确定了,最终稿就是这样
go语言的接口
如何通过DBeaver 连接 TDengine?
【MySQL系列】- LIKE查询 以%开头一定会让索引失效吗
SQL函数 $TRANSLATE
通过方法引用获取方法名
企业级数据治理工作怎么开展?Datahub这样做
Running yum reports Error: Cannot retrieve metalink for reposit
使用无界队列的线程池会导致内存飙升吗?