leetcode如何实现滑动窗口
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了leetcode如何实现滑动窗口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。滑动窗口类题目基本上技巧在于维护一个滑
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
互联网高科技
互联网科技名片
互联网科技公司简介
新华互联网科技
互联网科技官网
科技互联网项目
互联网科技与金融科技
善班互联网科技
菲比寻常互联网科技
隆华科技工业互联网
互联网科技热点资讯
电子科技大学互联网创业大赛
用友工业互联网科技发展
上海京穆互联网科技有限公司
从那以后互联网科技有限公司
广东鹅鹅鹅互联网科技有限公司
互联网科技新闻
云南互联网科技学费
东风日产互联网科技公司叫什么
互联网科技企业文化
云南咖啡
互联网通讯科技
互联网公司 科技公司
科技类的互联网平台
互联网科技公司需要的职位
开一家科技互联网公司需要多少钱
华夏恒生互联网科技013171
科技大学互联网
福州德业互联网科技
互联网科技创新创业项目