Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 072b564

Browse files
committed
Update 02.Knapsack-Problem-02.md
1 parent 62f1751 commit 072b564

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

‎Contents/10.Dynamic-Programming/04.Knapsack-Problem/02.Knapsack-Problem-02.md‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,15 @@ $dp[i][w] = max \lbrace dp[i - 1][w - k \times weight[i - 1]] + k \times value[i
5151

5252
```Python
5353
class Solution:
54+
# 思路 1:动态规划 + 二维基本思路
5455
def completePackMethod1(self, weight: [int], value: [int], W: int):
5556
size = len(weight)
5657
dp = [[0 for _ in range(W + 1)] for _ in range(size + 1)]
5758

5859
# 枚举前 i 种物品
5960
for i in range(1, size + 1):
6061
# 枚举背包装载重量
61-
for w in range(1, W + 1):
62+
for w in range(W + 1):
6263
# 枚举第 i 种物品能取个数
6364
for k in range(w // weight[i - 1] + 1):
6465
# dp[i][w] 取所有 dp[i - 1][w - k * weight[i - 1] + k * value[i - 1] 中最大值
@@ -142,15 +143,16 @@ $\quad dp[i][w] = \begin{cases} dp[i - 1][w] & w < weight[i - 1] \cr max \lbrac
142143
#### 思路 2:代码
143144

144145
```Python
145-
class Solution:
146+
class Solution:
147+
# 思路 2:动态规划 + 状态转移方程优化
146148
def completePackMethod2(self, weight: [int], value: [int], W: int):
147149
size = len(weight)
148150
dp = [[0 for _ in range(W + 1)] for _ in range(size + 1)]
149151

150152
# 枚举前 i 种物品
151153
for i in range(1, size + 1):
152154
# 枚举背包装载重量
153-
for w in range(1, W + 1):
155+
for w in range(W + 1):
154156
# 第 i - 1 件物品装不下
155157
if w < weight[i - 1]:
156158
# dp[i][w] 取「前 i - 1 种物品装入载重为 w 的背包中的最大价值」
@@ -209,6 +211,7 @@ $dp[w] = \begin{cases} dp[w] & w < weight[i - 1] \cr max \lbrace dp[w], \quad d
209211

210212
```Python
211213
class Solution:
214+
# 思路 3:动态规划 + 滚动数组优化
212215
def completePackMethod3(self, weight: [int], value: [int], W: int):
213216
size = len(weight)
214217
dp = [0 for _ in range(W + 1)]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /