LEARNING IN PUBLIC · 2026

把每一道题,
整理成可复用的思路。

这里记录我的 LeetCode 学习过程:不只写答案,也留下推导、踩坑和可以迁移到下一道题的模式。

TRACE_001.PY
# 一次遍历 · O(n)
def two_sum(nums, target):
    seen = {}

    for i, x in enumerate(nums):
        need = target - x
        if need in seen:
            return [seen[need], i]
        seen[x] = i
HASH MAP
01
ACCEPTED ✓
问题拆解 复杂度分析 模式归纳 定期复盘 问题拆解 复杂度分析

LATEST NOTES

最近整理

25 篇 · 持续更新中

206

反转链表

Easy

反转的本质是逐个改写 next 指针,难点在于改指针之前别把后继节点弄丢。

#链表#双指针
001

两数之和

Easy

用一次遍历和一张哈希表,把“寻找另一个数”从线性搜索降到常数时间。

#数组与哈希
704

二分查找

Easy

二分的难点不在取中点,而在于始终说清楚搜索区间的定义。

#二分查找#数组与哈希
101

对称二叉树

Easy

对称不是一棵树的性质,而是两棵子树互为镜像的性质,问题从一元变成了二元。

#二叉树#递归
003

无重复字符的最长子串

Medium

用滑动窗口维护一个始终合法的区间,并在右边界移动时更新答案。

#滑动窗口#双指针
141

环形链表

Easy

快慢指针每轮把间距缩短一格,只要有环就一定追上,这是它必然相遇的原因。

#链表#双指针
020

有效的括号

Easy

括号匹配的本质是“最近打开的必须最先关闭”,这正好是栈的定义。

#
160

相交链表

Easy

两个指针各自走完自己再走对方,走过的总长相同,会在交点或同时到达终点相遇。

#链表#双指针
070

爬楼梯

Easy

到第 n 阶的走法数 = 到 n-1 阶 + 到 n-2 阶,它其实就是斐波那契。

#动态规划
021

合并两个有序链表

Easy

用一个哨兵节点省掉“第一个节点特殊处理”的分支,合并就退化成不断挑更小的那个。

#链表#递归
234

回文链表

Easy

把找中点、反转后半、再对比拼在一起,就能在 O(1) 空间里判断链表是否回文。

#链表#双指针
094

二叉树的中序遍历

Easy

递归天然记住了「回来以后接着往下走」,显式栈就得自己把这件事补上。

#二叉树#
104

二叉树的最大深度

Easy

把整棵树的深度拆成子树的深度加一,递归就成了对定义的直接翻译。

#二叉树#递归
121

买卖股票的最佳时机

Easy

只买卖一次,答案就是“每天卖出”时能拿到的最大利润,而它只依赖历史最低价。

#动态规划#贪心
136

只出现一次的数字

Easy

异或让成对的数字自我湮灭,无需额外空间就能把落单的那个筛出来。

#位运算
155

最小栈

Easy

让每个元素在入栈时就记住“它之下的最小值”,getMin 就退化成读栈顶。

#
226

翻转二叉树

Easy

翻转整棵树等于交换根的左右孩子,再让两棵子树各自翻转——一个动作递归下去就够了。

#二叉树#递归
283

移动零

Easy

把“搬运零”反过来想成“收拢非零元素”,一个慢指针就能标记它们该落的位置。

#数组与哈希#双指针
543

二叉树的直径

Easy

直径的答案藏在每个节点的「左深 + 右深」里,顺着求深度的递归就能顺手捞出来。

#二叉树#递归
169

多数元素

Easy

摩尔投票把“统计谁最多”变成“互相抵消”,多数元素靠数量优势一定活到最后。

#数组与哈希
617

合并二叉树

Easy

让两棵树的指针同步下探,空节点就地把位置让给另一棵,合并只需处理「同时存在」这一种情况。

#二叉树#递归
581

最短无序连续子数组

Easy

无序段的边界由“越界”的元素决定,一左一右两趟扫描就能同时定位两端。

#数组与哈希#双指针
538

把二叉搜索树转换为累加树

Easy

反着中序遍历,节点就按从大到小的顺序出现,一个累加变量便能一路加下去。

#二叉树#递归
461

汉明距离

Easy

先用异或把“不同的位”变成 1,问题就归结成“数一个数里有几个 1”。

#位运算
448

找到所有数组中消失的数字

Easy

数值范围恰好等于下标范围,把数组本身当哈希桶,用正负号记录谁来过。

#数组与哈希

KNOWLEDGE MAP

不是刷题清单,
是我的模式库。

把零散题目归回核心数据结构和算法模式,下一次遇见相似问题时,能更快识别它。

01

数组与哈希

6 篇笔记

02

双指针

7 篇笔记

03

滑动窗口

1 篇笔记

04

二分查找

1 篇笔记

ABOUT THIS LOG

“理解一道题的标志,不是记住代码,
而是能说清楚为什么这样做。”

WRITTEN BY VVRFSHANGHAI · UTC+8