题目
有一组数量为 n 个物品,每个物品都有重量w 和价值v
给定一个背包bag,背包装的物品不能超过背包最大载重容量
返回背包bag 能装下的最大价值
问题分析
1. 物品的重量和价值:
- w[i] 表示第 i 个物品的重量。
- v[i] 表示第 i 个物品的价值。
2. 背包的容量:
- 给定一个背包的容量 bag,表示背包的最大承重。
- 我们需要选择若干物品,使得它们的总重量不超过 bag,并且它们的总价值最大。
核心思想
- 选择:每一个物品都有两种选择:放进背包或者不放进背包。
- 约束:物品的总重量不能超过背包的容量。
- 目标:在不超过背包容量的条件下,最大化物品的总价值。
递归暴力解法
递归设计
暴力解法的核心是递归,通过逐一决策每个物品是否放入背包,最终找到最优解。
-
状态定义:
index
:当前考虑的物品编号。rest
:当前背包的剩余容量。