1274 字
6 分钟
力扣Leetcode Exercise
2026-01-20

链表:7. 链表相交(面试02.07)   8. 环形链表II(142)
哈希表:6. 四数相加II(454)   8.三数之和(15)   9. 四数之和(18)
字符串
双指针法

2026#

1.23#

数组#

  • 704. 二分查找

    关于 >=/medal±1 的判断

    关于能取到的范围, target 所在范围:

    • 若 [left,right],则 right 初始化为len-1, while(left<=right); media > target 时,right = media-1;media < target 时,left = media + 1
      • 若 [left,right),则 right 初始化为 len,while(left<right); media > target 时,right = media;media < target 时,left = media + 1
  • 59. 螺旋矩阵II
    关于边界条件、循环不变式的确定。


快慢指针#

  • 27. 移除元素

    1. 快慢指针 O(n)

      slow代表下标, fast代表查询到的元素。遍历 fast 到 len

    2. 相对指针

      最开始的思路,left指针检测当前 nums[left] == val,

      1. 如果是,就把 right 的值覆盖
      2. 如果不是,就后移

      在最开始和每一次覆盖之后,把所有 nums[right] == val 的值排除掉

while(大循环){ while(小循环)每次把特殊情况处理完 }


滑动窗口#

找连续字串、数组的最小/最好字串、子数组

暴力解法会把数组嵌套遍历两遍,时间复杂度O(n^2);
滑动窗口的思想是直接把数组遍历两遍,时间复杂度O(2n)

  • 3. 无重复字符的最长子串 HashMap存储区间内字母所在的位置;
    对于每次检测的字符:
    1. 存在区间内 (idx>l),把 l更新为idx+1
    2. 不存在区间内,不含重复字符的数组长度 length++
  • 904. 水果成篮
    含有1/2个不同数字的 最长连续子数组 长度。
  • 209. 长度最小的子数组 每一轮迭代,将 nums[r] 加到sum,如果 sum ≥ target,则更新 l,更新子数组的最小长度,l不断右移到 sum<target

链表#

  • 203. 移除链表元素
    ①移除头节点 head 和移除其他节点有区别,②Solution:添加虚拟头节点
    ① 头节点

    while(head!=null && head.val==val) {
    head = head.next;
    }

    其他节点,连续target值的处理

    ListNode cur = head;
    while(cur!=null && cur.next !=null) {
    if(cur.next.val == val){
    cur.next = cur.next.next; //处理连续target值
    } else {
    cur = cur.next;
    }
    }

    ② 虚拟头节点(哨兵)

    ListNode dumpy = new ListNode();
    dumpy.next = head;
  • 反转链表 易

  • 两两交换链表中的节点
    添加虚拟头节点 :操作当前节点,至少要指向当前的前一个节点
    ① 做的复杂化了,是递归假象的 while 循环,优化:一次循环只交换一对
    ② 递归 很巧妙(跪)

快慢指针


哈希表/散列表#


字符串#

KMP#

视频教程

  1. 对于两个字符数组的遍历
    1. string[i] == patt[j] 时,i++ j++;
    2. 否则当 j>0 时,j=next[j-1]指向前一个匹配的 next数值(可以跳过的匹配位数)
    3. 否则,patt第一个字符就无法匹配,i++ img_6.png
  2. next数组 匹配失败时,返回最后一个匹配字符,next代表子串中“相同前后缀的长度”
    项目标准

二叉树#

力扣Leetcode Exercise
https://lilyly9.github.io/posts/1力扣刷题leetcode-exercise/
作者
Stari
发布于
2026-01-20
许可协议
CC BY-NC-SA 4.0