二分法

二分法的框架好写,但正确的二分法难写。

私以为:二分法的精髓在于,每次迭代时,保留答案存在的区间或者丢弃答案不存在的区间,从而缩小查找范围。

需要注意的是:保留答案存在的区间时,需要避免无限循环;二分区间状态转移的一致性。

题单:https://leetcode.cn/studyplan/binary-search/

阅读更多

滑动窗口法

滑动窗口是一种解题技巧,一句话说明就是维护一个窗口,不断滑动,更新答案。

滑动窗口适合的一维情况,比如数组、字符串;同时,拓展到二维也不是不可能。

根据问题求解的特性,可分为最小滑动窗口和最大滑动窗口两种解题模版。

阅读更多

链表总结

链表的题目多涉及指针操作,需要画图显示步骤,不然容易搞混。

常用的套路有:

  • 双指针(前驱后继指针、快慢指针、奇偶指针)
  • 虚拟头节点(好处:需要前驱节点时,总能找到前驱节点。比如在删除头节点时,我们可以找到头节点的前驱。)
阅读更多