第二步:压掉一维

写出二维版和一维版,输出三样:一维答案 / 二维格子数 / 一维格子数。

开始练习 →

第三步:两个区间 DP

写出石子合并([4,1,2,3])和最长回文子序列(bbbab),两个答案拼起来输出。

开始练习 →

第四步:三个二维 DP

写出网格路径(3 行 4 列)、带障碍的网格路径((1,1) 有石头)、编辑距离(horse 变 ros),三个答案拼起来输出。

开始练习 →

交付:独立设计 DP 状态

这是这条路线的最终作品。把前四步的代码合起来,一次验完五条: 0/1 背包 20,完全背包 25——只差一个循环方向 二维和一维答案相同,格子数从 44 降到 11 石子合并 19(按区间长度填),最长回文子序列 4 网格路径 10,放一块

开始练习 →

⚠️ 图遍历为什么非要 visited

在图上遍历必须记住走过哪些点,因为【0】。

开始练习 →

树遍历为什么不用这一步

走过的不做记号,就绕回原地了 不标记 标记过 遍历树的时候不需要 visited,因为【0】。

开始练习 →

visited 一般拿什么存

走过的不做记号,就绕回原地了 不标记 标记过 记录"走过哪些点"通常用【0】。

开始练习 →

一次遍历的结果是什么

走过的不做记号,就绕回原地了 不标记 标记过 在图上做一次完整遍历,得到的是【0】。

开始练习 →

什么问题适合用图遍历

走过的不做记号,就绕回原地了 不标记 标记过 下面最适合用图遍历解决的是【0】。

开始练习 →

直接邻居和能走到的,差多少

走过的不做记号,就绕回原地了 不标记 标记过 七个点的图,0 号的邻居表是 [1, 2]。运行下面这段程序,看它的直接邻居有几个、一路能走到几个: def dfs(g, s): seen = set() out = []

开始练习 →