leetcode如何实现滑动窗口
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍了leetcode如何实现滑动窗口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。滑动窗口类题目基本上技巧在于维护一个滑
千家信息网最后更新 2025年12月02日leetcode如何实现滑动窗口
这篇文章主要介绍了leetcode如何实现滑动窗口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
滑动窗口类题目基本上技巧在于维护一个滑动窗口,移动窗口的左右指针,使得窗口满足一定条件,关键在于如何处理窗口满足条件的地方,使得算法更高效。
最大连续1的个数
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。
返回仅包含 1 的最长(连续)子数组的长度。
示例 1:
输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
输出:6
解释:
[1,1,1,0,0,1,1,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:
输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
输出:10
解释:
[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
粗体数字从 0 翻转到 1,最长的子数组长度为 10。解题思路:
1,本题的要点不在滑动窗口长度,在于,维持窗口内0的个数<=K
2,我们定义指针l,r分别表示窗口左右下标,移动r,当A[r]==0的时候我们增加0的个数记录sum,分两种情况
A,sum>K 这个时候需要移动左指针,让0的个数减1
B,sum<=K 无需处理,继续移动右指针
func longestOnes(A []int, K int) int { if K==0 &&len(A)<1{ return 0 } l:=0 sum:=0 max:=0 for r:=0;rK{ for A[l]!=0{ l++ } l++ sum-- } } if r-l+1>max{ max=r-l+1 } } return max} 感谢你能够认真阅读完这篇文章,希望小编分享的"leetcode如何实现滑动窗口"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
个数
指针
数组
篇文章
长度
移动
最长
数字
时候
条件
示例
解释
输入
输出
最大
下标
价值
关键
兴趣
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
前端数据库SQL
上海市政府行政规范数据库
数据库3105
嘉定区综合软件开发销售厂
网络数据库技术实验
深入计算网络技术与应用电子书
陕西首创复星网络技术
浙江仓库管理软件开发
上海勤和软件开发有限公司
orcal数据库转中文
温州直播软件开发哪家好
大学需要注意哪些网络安全
软件开发环境与平台的区别
安广网络技术储备
经常出差软件开发
日本找软件开发工作网站
工程数据库技术 吴卓葵
上海库存网络技术销售公司
安徽app软件开发平台有哪些
杨浦区网络技术开发咨询热线
本质上的网络安全
品牌研究数据库
塘沽区软件开发商电话
如何将sql导入数据库
方舟联机用小型服务器可以吗
你还知道哪些网络安全防疫小技巧
jsp 数据库 注入
汇众天下网络技术有限公司
超梦境激斗最新服务器
浅谈数据库范式