面试准备

算法与 Python 知识点

刷题时在 chat 里问过的通用知识点:复杂度分析、图、树、Python 写法,每题是一个可以口头回答的概念题。

共 9 题 · 掌握 0 · 做过 0 · 没做 9。左边的小按钮依次是「没做 · / 做过 做 / 掌握 ✓」。

题单说明

从 claude.ai 上「ha hahhhh hah」项目的 chat 对话整理(2026-09-04 到 2026-10-09)。这里只放没有对应 LeetCode 题号的通用知识点,按概念题的格式写(30 秒版、展开讲解、常见追问、英文说法)。

能挂到具体 LeetCode 题上的对话内容,已经作为小节补进了那道题,不在这个题单里重复:

优先级

复杂度分析 0 / 3 掌握

这一类怎么练

报复杂度时先说清楚 n 是什么。分治递归用递归树逐层求和(主定理是它的速查表);回溯、记忆化递归数「状态数 × 每个状态的代价」。

  1. A 主定理:分治复杂度
  2. A 记忆化搜索与回溯的区别
  3. B O(3^n) 与 O(4^n) 同级吗

图 0 / 3 掌握

这一类怎么练

最短路的选型:非负权 Dijkstra,有负权 Bellman-Ford,DAG 用拓扑序,全源看点数选 Floyd 或 Johnson。

  1. A Dijkstra 为什么不能有负权边
  2. A Dijkstra 复杂度:惰性删除
  3. B 负权环检测(Bellman-Ford) Medium

树 0 / 1 掌握

这一类怎么练

平衡树的口头题。和红黑树的对比见 AVL 树与红黑树的区别。

  1. C AVL 树的旋转次数

Python 0 / 2 掌握

这一类怎么练

刷题时 Python 写法和标准库的坑。heapq 的用法见 295. Find Median from Data Stream 的代码审查记录。

  1. B 用 Python 写算法题的结构
  2. B Python 字典缺键怎么处理