90.子集II

原题链接:90.子集II

思路:

重点就是去重 也就是同层的去重操作

全代码:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> result;
    vector<int> path;
    
    void backtracking(vector<int>& nums, int startIndex,vector<bool>& used)
    {
        result.push_back(path);
        for(int i = startIndex; i < nums.size(); i++)
        {
            if(i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false)
            {//同一层使用过的值进行跳过
                continue;
            }

            path.push_back(nums[i]);
            used[i] = true;//代表已使用
            backtracking(nums, i + 1, used);
            used[i] = false;
            path.pop_back();

        }

    
    }
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        vector<bool> used(nums.size(), false);
        sort(nums.begin(),nums.end());
        backtracking(nums, 0 ,used);
        return result;
    }
};
相关推荐
阳洞洞7 天前
79. Word Search
leetcode·回溯
阳洞洞14 天前
leetcode 93. Restore IP Addresses
leetcode·回溯
阳洞洞15 天前
leetcode 131. Palindrome Partitioning
leetcode·动态规划·回溯
阳洞洞18 天前
leetcode 148. Sort List
leetcode·链表·归并排序·递归·排序
闻缺陷则喜何志丹19 天前
【回溯 剪支 状态压缩】# 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语言·开发语言·递归·栈溢出