目录
一、两道例题
例1、力扣416.分割等和子集

例2、力扣1049.最后一块石头的重量II

二、转化的共同点
1、递推公式
纯粹的0-1背包问题的递推公式是:
dpj = max(dpj,dpj-weight\[i]+valuei); // max里面放的是"取"或"不取"当前物品i,这两种情况;
【这两个实际0-1背包问题的应用,都有一个共同点就是:它们的数组里的值就是物品的重量和价值】
所以转化以后的递推公式是:
dpj = max(dpj,dpj-nums\[i]+numsi);
【0-1背包问题要解决的就是【背包最大能装的重量、每个物品的重量、每个物品的价值】
问:背包最多能装多少价值
所以,第二个共同点是定义背包最大能装的重量。】
2、背包最大能装质量
纯粹的0-1背包问题的最大能装重量已知
(由题目就能判断出)
转化为实际0-1背包问题的应用时,要先分析后定义
(例1、力扣416.分割等和子集。定义背包最大能装的重量为:数组全部数值总和的一半sum/2)
(例2、力扣1049.最后一块石头的重量II。定义背包最大能装的重量为:数组全部数值总和的一半 sum/2 )(这里 sum/2 是向下取整)