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;
    }
};
相关推荐
礼拜天没时间.2 天前
力扣热题100实战 | 第25期:K个一组翻转链表——从两两交换到K路翻转的进阶之路
java·算法·leetcode·链表·递归·链表反转·k个一组翻转链表
程序员-King.2 天前
day162—递归—买卖股票的最佳时机Ⅱ(LeetCode-122)
算法·leetcode·深度优先·递归
闻缺陷则喜何志丹2 天前
【字典树 回溯】P7210 [COCI 2020/2021 #3] Vlak|普及+
c++·算法·字典树·回溯·洛谷
We་ct2 天前
LeetCode 46. 全排列:深度解析+代码拆解
前端·数据结构·算法·leetcode·typescript·深度优先·回溯
We་ct2 天前
LeetCode 39. 组合总和:DFS回溯解法详解
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
Tisfy21 天前
LeetCode 761.特殊的二进制字符串:分治(左右括号对移动)
算法·leetcode·字符串·递归·分治
Bear on Toilet23 天前
递归_二叉树_50 . 从前序与中序遍历序列构造二叉树
数据结构·算法·leetcode·深度优先·递归
Bear on Toilet24 天前
递归_二叉树_49 . 路径综合Ⅲ
数据结构·算法·前缀和·深度优先·递归
ValhallaCoder25 天前
hot100-回溯II
数据结构·python·算法·回溯
码农幻想梦1 个月前
3483. 2的幂次方(上海交通大学考研机试题目)
递归·分治