news 2026/3/8 2:42:29

0x3f第二天滑动窗口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
0x3f第二天滑动窗口

1.enumerate是python内置函数,和range都是内置函数,enumerate针对索引和对应元素都需要的时候,可以简化,就不用range了

for key,value in enumerate(nums):

这样就可以直接使用每一趟的key和value,不用写range,再把索引++

2.核心思想滑动窗口,不断枚举右边界,每次扩大右边界一次,就要把左边界缩到最小

左右边界都是从0开始取的,所以是同个起点起跑,右边界会比左边界走的快,

right 从 0 开始逐个前进,left 初始在 0 不动,直到 right 划到某个位置、窗口和满足条件,left 才会开始移动。


相当于往箱子里放球

right_value是往盒子里放新球,每枚举一个右端点,就加一个球

nums【left】是把刚放进去的某个球拿出来,缩窗时拿的球,一定是之前放进去的

temp 就是「盒子里当前所有球的数值的总和」,放球 / 拿球都会动态更新总和。

ans就是球的个数

困惑的点是

n = len(nums)

left = 0

ans = 0 #个数

temp = 0 #当前的总值

for right,right_value in enumerate(nums):

temp += right_value

while (temp -nums[left]) >= target: 错

left += 1

ans = min(ans,right - left + 1)

return ans

核心应该是

while temp>=target:

当出现目标,先记录,记录好,存根,放在ans了,就可以大胆的将left+1,就算不行,ans已经保存了行的时候的结果

ans = min(ans,right - left + 1)

temp - ...

left ++

出现的第二个问题
窗口里的处理顺序:

while temp >= target:

temp -= nums[left] x

ans = min(ans,right - left + 1) x

left += 1

粉色两行的顺序,应该是先记录此时的ans,再-temp

先统计有效窗口,再收缩,才是滑动窗口的标准逻辑;

出现的第三个问题,特殊情况的结,比如所有数加起来都不够,怎么办,此时判断条件是什么

ans == n+1 就说明没有进入过while循环,就是压根没出现过合理的窗口

1.思路完全和上面一致,只不过多了一个怎么把所有数都加上的问题

因为每次循环都把满足小于k的最大子数组找到了,最大子数组满足,那这个子数组中的拆开肯定也符合,就是怎么把他剥离开

我就没有想到

答案是 ans += right-left+1,排列组合问题

2.由于是乘法问题,就会引申到÷运算,本题是整数,所以//整除的性能最高

3.由于是乘法问题,初始值的赋值就要考虑0这个元素,因为任何数乘0都是0




1.首先引入一个函数Counter用来统计字符串的字符出现的次数,和三数之和的去重复性质不同,三数之和重复是排序之后,可能前后一样,我们要做到++来跳过重复的结果

但是最长字串的重复是设计某个元素出现次数,这个时候counter就有大用

用法 cnt = Counter()

再次调用的时候cnt[key],因为是字典子类的通用键访问语法 键----值

ctn['a'] +=1 翻译成人话就是:“把字符 'a' 在窗口内的出现次数加 1”

2.和上面两个题原理是一样的,for循环移动右边界,while循环移动左边界,while的条件根据题目设计

最终可以得到想要的滑动窗口,最终需要什么东西就是通过窗口的left和right来算

比如什么right - left +1 固定的值,不是最大值什么的

比如什么ans = (max,...)不断更新的最大值
核心代码:

while ctn[right_str] > 1:

ctn[s[left]] -= 1

left += 1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 14:13:09

医疗影像AI开发革命:MONAIBundle极速配置新范式

在医疗影像AI开发领域,传统的手工编码模式正面临前所未有的挑战。研究人员在数据预处理、模型训练、性能评估等环节耗费大量时间,而临床部署的复杂性更是让许多优秀算法止步于实验室阶段。MONAIBundle的出现,标志着医疗AI开发正式进入"配…

作者头像 李华
网站建设 2026/3/5 21:54:46

CVAT标注工具入门指南:5分钟学会基本操作

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用CVAT标注工具,创建一个简单的图像分类任务。上传10张猫和狗的图片,用矩形框标注出动物位置,并打上类别标签。导出标注结果,生成T…

作者头像 李华
网站建设 2026/3/3 14:13:15

Simulink仿真:基于图腾柱PFC的单相整流器

simulink仿真-图腾柱 基于图腾柱PFC的单相整流器输入220V交流电 稳定输出400V直流电 电网电流电压同相位直接上干货!今天要聊的是用Simulink实现基于图腾柱的无桥PFC整流器。这玩意儿能把220V交流电整成400V直流电,关键是能让电网电流和电压保持同相位—…

作者头像 李华
网站建设 2026/3/3 14:13:17

大型网站日志管理:logrotate实战经验分享

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个模拟大型网站日志管理的演示系统,包含:1. 高流量日志生成器 2. 多节点日志收集 3. 基于logrotate的自动轮转配置 4. 日志压缩和归档策略 5. 监控告警…

作者头像 李华