← 返回课程路线 第三阶段 · S3-08 · 60 分钟

用已经算好的小问题,推出更大的问题

这一课只练一件事:用已经算好的小问题推出更大的问题,这叫 (C++ 里常用数组 dp)。必会:用一句话解释 dp[i]、写出 、用手算前三步验证 。最小示例:每次走 1 或 2 级台阶,求走到第 n 级的方法数。边界是忘了初值,以及 n=1。建议掌握:把答案记在 表里。填 n 格大约 O(n),常见测试点能通过。状态压缩、二维背包、树形 DP 是拓展。这里不会在浏览器里运行 C++。

必会:能解释 dp[i];能写出初值;能手算前三步 建议掌握:能把答案记在一维 DP 表里 拓展:状态压缩、二维背包、树形 DP,现在不用当硬门槛

任务 1:先选出动态规划是什么、dp[i] 表示什么

用已经算好的小问题推出更大的问题。爬楼梯里, dp[i] 表示走到第 i 级的方法数。点不认识的词可看基础解释。

必会:能用一句话说清 dp[i]。这里不会在浏览器里运行 C++,只练习选择和走过程。

动态规划在本课是什么意思?小问题推大问题 · 必会

爬楼梯里 dp[i] 表示什么?状态含义 · 必会