【力扣 中等 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;
    }
};
相关推荐
星辞树几秒前
从 L1/L2 到 Dropout:深度解析正则化,为何推荐系统“只能练一次”?
算法
玖剹4 分钟前
队列+宽搜(bfs)
数据结构·c++·算法·leetcode·宽度优先
oioihoii9 分钟前
构建高并发AI服务网关:C++与gRPC的工程实践
开发语言·c++·人工智能
X***078824 分钟前
从底层逻辑到工程实践,深入理解C语言在计算机世界中的核心地位与持久价值
c语言·开发语言
mit6.82426 分钟前
01bfs|前缀和的前缀和
算法
wen__xvn26 分钟前
代码随想录算法训练营DAY11第五章 栈与队列part02
算法
晚枫歌F29 分钟前
io_uring的介绍和实现
开发语言·php
时光追逐者40 分钟前
TIOBE 公布 C# 是 2025 年度编程语言
开发语言·c#·.net·.net core·tiobe
花归去43 分钟前
echarts 柱状图曲线图
开发语言·前端·javascript