mirror of
https://github.com/krahets/hello-algo.git
synced 2025-11-02 12:58:42 +08:00
1. lower-case nouns
2. fix 2 figures 3. Replace some 「」 by “”
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
# 初探动态规划
|
||||
|
||||
「动态规划 Dynamic Programming」是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。
|
||||
「动态规划 dynamic programming」是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。
|
||||
|
||||
在本节中,我们从一个经典例题入手,先给出它的暴力回溯解法,观察其中包含的重叠子问题,再逐步导出更高效的动态规划解法。
|
||||
|
||||
@ -239,7 +239,7 @@ $$
|
||||
|
||||

|
||||
|
||||
观察上图发现,**指数阶的时间复杂度是由于「重叠子问题」导致的**。例如:$dp[9]$ 被分解为 $dp[8]$ 和 $dp[7]$ ,$dp[8]$ 被分解为 $dp[7]$ 和 $dp[6]$ ,两者都包含子问题 $dp[7]$ 。
|
||||
观察上图发现,**指数阶的时间复杂度是由于“重叠子问题”导致的**。例如:$dp[9]$ 被分解为 $dp[8]$ 和 $dp[7]$ ,$dp[8]$ 被分解为 $dp[7]$ 和 $dp[6]$ ,两者都包含子问题 $dp[7]$ 。
|
||||
|
||||
以此类推,子问题中包含更小的重叠子问题,子子孙孙无穷尽也。绝大部分计算资源都浪费在这些重叠的问题上。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user