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;
    }
};
相关推荐
码破苍穹ovo15 天前
回溯----5.括号生成
java·数据结构·力扣·递归
阳洞洞1 个月前
79. Word Search
leetcode·回溯
阳洞洞1 个月前
leetcode 93. Restore IP Addresses
leetcode·回溯
阳洞洞1 个月前
leetcode 131. Palindrome Partitioning
leetcode·动态规划·回溯
阳洞洞1 个月前
leetcode 148. Sort List
leetcode·链表·归并排序·递归·排序
闻缺陷则喜何志丹1 个月前
【回溯 剪支 状态压缩】# P10419 [蓝桥杯 2023 国 A] 01 游戏|普及+
c++·算法·蓝桥杯·剪枝·回溯·洛谷·状态压缩
2301_807611492 个月前
310. 最小高度树
c++·算法·leetcode·深度优先·回溯
2301_807611492 个月前
47. 全排列 II
c++·算法·leetcode·回溯
冉佳驹2 个月前
C语言 ——— 函数
c语言·数据结构·学习·递归·函数·嵌套调用·链式访问
2301_807611492 个月前
126. 单词接龙 II
c++·算法·leetcode·深度优先·广度优先·回溯