当前位置: 首页 > news >正文

【滑动窗口与双指针】学习记录

是 【灵茶山艾府】佬的题单

一、定长滑动窗口

定长滑动窗口,每次移动窗口时移除窗口旧尾部元素的贡献,添加窗口新头部元素的贡献。

1456. 定长子串中元音的最大数目

板子,每次移动窗口时若新头部元素为元音则计数加 1 1 1,若旧尾部元素为元音则计数减 1 1 1

后面紧接着两道都是板子,不多赘述。

2090. 半径为 k 的子数组平均值

注意窗口的长度是 2 k + 1 2k+1 2k+1,不保证小于等于数组总长度 n n n

2379. 得到 K 个黑块的最少涂色次数

转化为“黑色块最多(白色块最少)的窗口”。

1052. 爱生气的书店老板

窗口内全 0 0 0,每次移动窗口时若新头部元素为 1 1 1 则加上对应贡献,若旧尾部元素为 1 1 1 则减去对应贡献。

2841. 几乎唯一子数组的最大和

map 和一个计数器维护窗口内互不相同的元素的个数,另一个计数器维护窗口内元素和。满足“有至少 m m m 个互不相同的元素”时用当前窗口内元素和更新答案。

下一题同理,互不相同元素数等于 k k k 时更新答案。

1423. 可获得的最大点数

只拿两头的 k k k 张转化为不拿中间的 n − k n-k nk 张,实际上是求长度为 n − k n-k nk 的窗口的最小元素和。

1652. 拆炸弹

维护窗口元素和后赋值给对应位置即可,使用取模计算循环性。


未完待续


http://www.mrgr.cn/news/90073.html

相关文章:

  • 前端布局与交互实现技巧
  • 鸿蒙音视频播放器:libwlmedia
  • Maven 中常用的 scope 类型及其解析
  • AI刷题-融合目标计算问题
  • Linux系统 环境变量
  • pytest生成报告no tests ran in 0.01s
  • 免费为企业IT规划WSUS:Windows Server 更新服务 (WSUS) 之更新组策略(五)
  • python学opencv|读取图像(六十)先后使用cv2.erode()函数和cv2.dilate()函数实现图像处理
  • PHP中的魔术方法
  • 在请求时打印出实际代理的目标地址
  • 机器学习分类整理【表格版】分类角度、名称、概念、常见算法、典型案例
  • 数据结构之排序
  • 线程上下文-ThreadLocal原理
  • 百度高德地图坐标转换
  • 网络防御高级02-综合实验
  • vue学习5
  • win10 llamafactory模型微调相关① || Ollama运行微调模型
  • 网络计算机的相关概念整理
  • FreeRTOS实战项目——STM32F103ZET6智能门禁系统(二)
  • 活动预告 |【Part 2】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
  • JavaScript中的防抖与节流:提升性能的关键技巧
  • 保姆级教程Docker部署Zookeeper官方镜像
  • 第3章 城市隧道工程与城市轨道交通工程 3.2 地下水控制
  • 【AIGC】DeepSeek本地部署方法详解:基于Ollama与LM-Studio
  • deepseek+kimi自动生成ppt
  • 策略模式(Strategy)