Python算法学习无“第554讲”官方概念,真正卡点常是函数行为误解、边界遗漏或数据结构误选;需结合报错信息、代码片段与IO样例精准定位。

想实现某个具体算法但卡在细节上
- 比如
Dijkstra在含负权边时失效,得换Bellman-Ford - 比如
heapq默认最小堆,要最大堆得存-value - 比如
itertools.combinations生成组合时内存爆炸,得改用生成器手动 yield
正在调试一个报错但不知道根因
-
RecursionError: maximum recursion depth exceeded—— 不是递归写错了,很可能是终止条件漏判或图没判访问标记 -
TypeError: unhashable type: 'list'—— 想把 list 当 dict key 或塞进 set,得先转tuple -
IndexError: list index out of range—— 常见于双指针或滑动窗口里边界没同步更新
面对新题型不知从哪类算法切入
- 涉及“最短”“最小代价”“路径唯一性” → 优先看是否能建图,再试
BFS/Dijkstra/Floyd - 输入有序或要求输出有序,且有“子数组”“连续”字眼 → 先想
双指针和前缀和 - 要枚举所有可能方案,且状态可压缩 → 考虑
位运算 + DP,别硬写itertools.product
if 缺了 else,或那个 range 少写了 +1。










