【力扣 中等 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;
    }
};
相关推荐
xiangzhihong82 分钟前
Spring Boot实现文字转语音功能
开发语言·python
月夕·花晨13 分钟前
Gateway-断言
java·开发语言·分布式·spring cloud·微服务·nacos·sentinel
西贝爱学习22 分钟前
【JDK 11 安装包免费下载 免登录Oracle 】jdk11与jdk8有什么区别?
java·开发语言
Vallelonga27 分钟前
Rust 中的 static 和 const
开发语言·经验分享·rust
s91236010135 分钟前
【rust】 pub(crate) 的用法
开发语言·后端·rust
元亓亓亓37 分钟前
LeetCode热题100--994. 腐烂的橘子--中等
算法·leetcode·职场和发展
(●—●)橘子……41 分钟前
记力扣2516.每种字符至少取k个 练习理解
算法·leetcode·职场和发展
宠友信息1 小时前
类似小红书垂直社区APP小程序源码
java·开发语言·微信小程序·小程序·uni-app·开源·web app
Ling_Ze1 小时前
visual studio快捷键
c++
10001hours1 小时前
C语言第21讲
c语言·开发语言