90. 子集 II

发布于:2023-09-14 ⋅ 阅读:(113) ⋅ 点赞:(0)

class Solution {
public:
    vector<int>path;
    vector<vector<int> >ans;
    void backtracking(vector<int>nums,int star,vector<bool>&flag){
        if(star>=nums.size())return;
        for(int i=star;i<nums.size();i++){
            if(i>0&&nums[i]==nums[i-1]&&flag[i-1]==false)continue;
            path.push_back(nums[i]);
            flag[i]=true;
            ans.push_back(path);
            backtracking(nums,i+1,flag);
            flag[i]=false;
            path.pop_back();
        }
    }
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        vector<bool>flag(nums.size(),false);
        sort(nums.begin(),nums.end());
        ans.push_back(path);
        backtracking(nums,0,flag);
        return ans;
    }
};


网站公告

今日签到

点亮在社区的每一天
去签到