mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 03:30:30 +08:00
build
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
comments: true
|
||||
---
|
||||
|
||||
# 13.4. 0-1 背包问题
|
||||
# 14.4. 0-1 背包问题
|
||||
|
||||
背包问题是一个非常好的动态规划入门题目,是动态规划中最常见的问题形式。其具有很多变种,例如 0-1 背包问题、完全背包问题、多重背包问题等。
|
||||
|
||||
@@ -55,7 +55,7 @@ $$
|
||||
|
||||
完成以上三步后,我们可以直接实现从底至顶的动态规划解法。而为了展示本题包含的重叠子问题,本文也同时给出从顶至底的暴力搜索和记忆化搜索解法。
|
||||
|
||||
## 13.4.1. 方法一:暴力搜索
|
||||
## 14.4.1. 方法一:暴力搜索
|
||||
|
||||
搜索代码包含以下要素:
|
||||
|
||||
@@ -194,7 +194,7 @@ $$
|
||||
|
||||
<p align="center"> Fig. 0-1 背包的暴力搜索递归树 </p>
|
||||
|
||||
## 13.4.2. 方法二:记忆化搜索
|
||||
## 14.4.2. 方法二:记忆化搜索
|
||||
|
||||
为了防止重复求解重叠子问题,我们借助一个记忆列表 `mem` 来记录子问题的解,其中 `mem[i][c]` 对应解 $dp[i, c]$ 。
|
||||
|
||||
@@ -348,7 +348,7 @@ $$
|
||||
|
||||
<p align="center"> Fig. 0-1 背包的记忆化搜索递归树 </p>
|
||||
|
||||
## 13.4.3. 方法三:动态规划
|
||||
## 14.4.3. 方法三:动态规划
|
||||
|
||||
动态规划解法本质上就是在状态转移中填充 $dp$ 表的过程,代码如下所示。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user