【力扣 中等 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;
    }
};
相关推荐
fengfuyao9856 分钟前
基于MATLAB的GUI实现人脸检测、眼睛检测以及LBP直方图显示
开发语言·计算机视觉·matlab
你也向往长安城吗6 分钟前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法
蒋星熠9 分钟前
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
网络·c++·人工智能·深度学习·性能优化·系统架构
百度智能云22 分钟前
VectorDB+FastGPT一站式构建:智能知识库与企业级对话系统实战
算法
CHANG_THE_WORLD23 分钟前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
雨落倾城夏未凉23 分钟前
9.c++new申请二维数组
c++·后端
Franklin1 小时前
Python界面设计【QT-creator基础编程 - 01】如何让不同分辨率图像自动匹配graphicsView的窗口大小
开发语言·python·qt
雨落倾城夏未凉1 小时前
8.被free回收的内存是立即返还给操作系统吗?为什么?
c++·后端
雨落倾城夏未凉1 小时前
6.new和malloc的区别
c++·后端
郝学胜-神的一滴1 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生