40.组合总和 II

原题链接:40.组合总和 II

思路:

太抽象了 建议看题解
代码随想录该题题解

全代码:

cpp 复制代码
class Solution {
public:
    vector<vector<int>>result;
    vector<int> path;
    bool picking = false;
    void backtracking(vector<int>& candidates, int target,int sum, int startIndex,vector<bool>& used){
        if(sum == target){
            result.push_back(path); return;
        } 

        for(int i = startIndex; i < candidates.size() && sum + candidates[i] <= target; i++)
        {
            if(i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false) 
            {
                continue;
            }
            sum += candidates[i];
            path.push_back(candidates[i]);
            used[i] = true;
            backtracking(candidates,target,sum,i + 1,used);
            used[i] = false;
            sum -= candidates[i];
            path.pop_back();

        }
    }
    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
         vector<bool> used(candidates.size(), false);
         sort(candidates.begin(), candidates.end());
        backtracking(candidates,target,0,0,used);
        return result;
    }
};
相关推荐
阳洞洞13 天前
79. Word Search
leetcode·回溯
阳洞洞19 天前
leetcode 93. Restore IP Addresses
leetcode·回溯
阳洞洞20 天前
leetcode 131. Palindrome Partitioning
leetcode·动态规划·回溯
阳洞洞23 天前
leetcode 148. Sort List
leetcode·链表·归并排序·递归·排序
闻缺陷则喜何志丹24 天前
【回溯 剪支 状态压缩】# P10419 [蓝桥杯 2023 国 A] 01 游戏|普及+
c++·算法·蓝桥杯·剪枝·回溯·洛谷·状态压缩
2301_807611491 个月前
310. 最小高度树
c++·算法·leetcode·深度优先·回溯
2301_807611491 个月前
47. 全排列 II
c++·算法·leetcode·回溯
冉佳驹1 个月前
C语言 ——— 函数
c语言·数据结构·学习·递归·函数·嵌套调用·链式访问
2301_807611491 个月前
126. 单词接龙 II
c++·算法·leetcode·深度优先·广度优先·回溯
knightkkzboy1 个月前
《递归:C语言中的强大工具》
c语言·开发语言·递归·栈溢出