leetcode如何实现滑动窗口
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,这篇文章主要介绍了leetcode如何实现滑动窗口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。滑动窗口类题目基本上技巧在于维护一个滑
千家信息网最后更新 2025年01月26日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安全错误
数据库的锁怎样保障安全
windowsktv服务器
网络安全综合管理系统
网络安全产业意见
达梦数据库7备份还原
路北区项目网络技术不二之选
游戏服务器经常掉线怎么回事
宁乡网络安全小程序
群晖网络存储服务器
软件开发属于大数据吗
曲靖竹马之友互联网科技公司
校园网络安全作文1000字左右
个性网络安全宣传语句
武林外传服务器人数已满怎么办
嵌入式web服务器开发
怎么样检查网络安全
杭州服务器服务商
我眼里的计算机网络安全
中国最强网络安全团队
亿联网络技术面试
数据库中事物的用途和特点
河南金明源信息技术数据库
上海交友软件开发价钱
防盗网络安全手抄报
服务器系统更新要开启吗
香河县网络安全
数据库备份和恢复结果
成都环保行业平台软件开发
网络安全专辑
平顶山软件开发优缺点
信纸模板软件开发