Update punctuation

This commit is contained in:
krahets
2023-08-27 23:40:39 +08:00
parent c5a7323817
commit 57851ab11e
50 changed files with 100 additions and 100 deletions

View File

@@ -117,7 +117,7 @@
我们可以尝试从问题分解的角度分析这道题。设爬到第 $i$ 阶共有 $dp[i]$ 种方案,那么 $dp[i]$ 就是原问题,其子问题包括:
$$
dp[i-1] , dp[i-2] , \dots , dp[2] , dp[1]
dp[i-1], dp[i-2], \dots, dp[2], dp[1]
$$
由于每轮只能上 $1$ 阶或 $2$ 阶,因此当我们站在第 $i$ 阶楼梯上时,上一轮只可能站在第 $i - 1$ 阶或第 $i - 2$ 阶上。换句话说,我们只能从第 $i -1$ 阶或第 $i - 2$ 阶前往第 $i$ 阶。
@@ -132,7 +132,7 @@ $$
![方案数量递推关系](intro_to_dynamic_programming.assets/climbing_stairs_state_transfer.png)
我们可以根据递推公式得到暴力搜索解法。以 $dp[n]$ 为起始点,**递归地将一个较大问题拆解为两个较小问题的和**,直至到达最小子问题 $dp[1]$ 和 $dp[2]$ 时返回。其中,最小子问题的解是已知的,即 $dp[1] = 1$ , $dp[2] = 2$ ,表示爬到第 $1$ , $2$ 阶分别有 $1$ , $2$ 种方案。
我们可以根据递推公式得到暴力搜索解法。以 $dp[n]$ 为起始点,**递归地将一个较大问题拆解为两个较小问题的和**,直至到达最小子问题 $dp[1]$ 和 $dp[2]$ 时返回。其中,最小子问题的解是已知的,即 $dp[1] = 1$$dp[2] = 2$ ,表示爬到第 $1$$2$ 阶分别有 $1$$2$ 种方案。
观察以下代码,它和标准回溯代码都属于深度优先搜索,但更加简洁。
@@ -436,7 +436,7 @@ $$
根据以上内容,我们可以总结出动态规划的常用术语。
- 将数组 `dp` 称为「$dp$ 表」,$dp[i]$ 表示状态 $i$ 对应子问题的解。
- 将最小子问题对应的状态(即第 $1$ , $2$ 阶楼梯)称为「初始状态」。
- 将最小子问题对应的状态(即第 $1$ $2$ 阶楼梯)称为「初始状态」。
- 将递推公式 $dp[i] = dp[i-1] + dp[i-2]$ 称为「状态转移方程」。
## 空间优化