leetcode 组合总和 中等

完全背包。但是用搜索好像更好。
贴完全背包的代码
class Solution { public: vector<vector<int>> combinationSum(vector<int> &candidates, int target) { vector<vector<int>> ans[510]; ans[0].emplace_back(); // dp[i] 表示 和为 i 的方案数 for (int j = 0; j < candidates.size(); ++j) { for (int i = candidates[j]; i <= target; ++i) { // dp[i] += dp[i - candidates[j]] for (auto &item : ans[i - candidates[j]]) { item.push_back(candidates[j]); ans[i].emplace_back(item); item.pop_back(); } } } return ans[target]; } };

浙公网安备 33010602011771号