二分查找利用单调性,每次排除一半搜索范围。使用前先确认两件事:答案落在一个明确的范围内,而且检查中间位置后,能确定哪一半范围可以舍弃。 在升序数组中找元素符合这个条件;寻找最小可行速度、最小容量等问题,也可以把答案范围作为搜索对象。常见的判断结果是: False False False | True True True ↑ 第一个满足条件的位置 基…
滑动窗口主要用于解决 连续子数组 / 子串 问题。 核心思想: 用左右两个指针维护一个连续区间,右边扩张,左边根据条件收缩,避免重复计算。 1. 定长滑动窗口 窗口长度固定为 k。 核心流程: 右边加入 → 窗口形成 → 更新答案 → 左边移出 Python 模板: left = 0 sums = 0 for right, x in enumera…
欢迎来到 Livien 的技术小栈。 这里主要记录我的编程学习、算法练习、项目开发和一些折腾过程。 目前主要会更新: Python / 算法学习 项目开发记录 数据库、Java 等学习笔记 网站搭建和踩坑记录 一些自己感兴趣的技术内容 这个网站也是我学习过程的一部分,很多内容都会边学边记录。 如果某篇文章刚好对你有帮助,那就更好了。 欢迎留言,也欢…