【力扣 中等 C++】90. 子集 II

目录

题目

解法一:回溯


题目

解法一:回溯

cpp 复制代码
class Solution
{
private:
    void backTrack(vector<vector<int>>& subsets, vector<int>& subset,
        const vector<int>& nums, int startIndex)
    {
        subsets.push_back(subset);

        for (int i {startIndex}; i < nums.size(); i++)
        {
            // 去重
            if (i > startIndex && nums[i - 1] == nums[i])
                continue;

            subset.push_back(nums[i]);
            backTrack(subsets, subset, nums, i + 1);
            subset.pop_back();
        }
    }

public:
    vector<vector<int>> subsetsWithDup(vector<int>& nums)
    {
        vector<vector<int>> subsets;
        vector<int> subset;
        
        sort(nums.begin(), nums.end());
        backTrack(subsets, subset, nums, 0);
        return subsets;
    }
};
相关推荐
im_AMBER10 分钟前
java复习 11
java·开发语言
Cai junhao19 分钟前
【Qt】工具介绍和信号与槽机制
开发语言·c++·qt·qt6.3
黑牛先生20 分钟前
【Qt】信号与槽
开发语言·qt
橙子199110161 小时前
Kotlin 中的 Object
android·开发语言·kotlin
callJJ1 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(1)
java·开发语言·spring boot·后端·spring·restful·ioc di
Python开发吖2 小时前
【已解决】python的kafka-python包连接kafka报认证失败
开发语言·python·kafka
@老蝴5 小时前
C语言 — 通讯录模拟实现
c语言·开发语言·算法
L-ololois6 小时前
【AI】模型vs算法(以自动驾驶为例)
人工智能·算法·自动驾驶
♚卜卦7 小时前
面向对象 设计模式简述(1.创建型模式)
开发语言·设计模式
安全系统学习7 小时前
网络安全之RCE简单分析
开发语言·python·算法·安全·web安全