Combination Sum II LeetCode solution in C++
1class Solution {2public:3vector<vector<int>> ans;4vector<int> temp;5void f(vector<int> &nums, int target, int i) {6if (target == 0) {7ans.push_back(temp);8return;9}10if (i >= nums.size()) return;11if (nums[i] <= target) {12temp.push_back(nums[i]);13f(nums, target - nums[i], i + 1);14temp.pop_back();15while (i < nums.size() - 1 && nums[i] == nums[i + 1]) i++;16f(nums, target, i + 1);17} else18f(nums, target, i + 1);19}20vector<vector<int>> combinationSum2(vector<int> &candidates, int target) {21sort(candidates.begin(), candidates.end());22f(candidates, target, 0);23return ans;24}25};