【LeetCode90】-子集 II

方法一

实现思路

在这里插入图片描述在这里插入图片描述

实现代码


class Solution {
    
    
public:
    void generate(int i,vector<int> item,vector<int> &nums,set<vector<int>> &res){
    
    
        if(i>=nums.size()) return;
        item.push_back(nums[i]);
        if(!res.count(item))
            res.insert(item);
        generate(i+1,item,nums,res);
        item.pop_back();
        generate(i+1,item,nums,res);
    }
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
    
    
        sort(nums.begin(),nums.end());
        vector<int> item;
        set<vector<int>> res;
        vector<vector<int>> re;
        res.insert(item);
        generate(0,item,nums,res);

        set<vector<int>>::iterator it=res.begin();
        for(;it!=res.end();it++){
    
    
            re.push_back(*it);
        }
        return re;
    }
};

提交结果及分析

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44944046/article/details/113814438