feat: 39_combination_sum_1

This commit is contained in:
SquidSpirit 2025-02-27 23:41:47 +08:00
parent 828f3e0e7b
commit 832edfa692

View File

@ -0,0 +1,34 @@
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
sort(candidates.begin(), candidates.end());
vector<vector<int>> result;
function<void(int, vector<int>)> recursive = [&](int target, vector<int> chosen) {
if (target < 0) return;
if (target == 0) {
result.emplace_back(chosen);
return;
}
for (auto x : candidates) {
if (chosen.size() > 0 && x > chosen.back()) {
return;
}
chosen.emplace_back(x);
recursive(target - x, chosen);
chosen.pop_back();
}
};
recursive(target, {});
return result;
}
};