01背包
背包问题核心思路:考虑当前nums[i]有选和不选的两种情况。
二维dp写法 + 推导所选物品
int bag_01_2dim_solution(int bagWeight, vector<int>& weights, vector<int>& values, vector<int>& choices) {
if (weights.size() != values.size()) return -1;
if (!choices.empty()) return -1;
int n = weights.size();
//二维dp数组定义和初始化,第一列均为0,第一行为0或values[0]
vector<vector<int>> f(n, vector<int>(bagWeight + 1,