背包九讲
01背包
特点:
状态转移方程
for i in range(1, n):
for j in range(ci, v+1):
dp[i][j] = max(dp[i-1][j], dp[i-1][j-ci])优化
for i in range(1, n):
for j in range(v, 0, -1):
dp[j] = max(dp[j], dp[j-ci]+wi)初始化
leetcode例子
416 分割等和子集
322 零钱兑换
377 组合总和 Ⅳ
474 一和零
494 目标和
完全背包
Last updated