90. 子集 II

90. 子集 II_第1张图片

class Solution {
public:
    vectorpath;
    vector >ans;
    void backtracking(vectornums,int star,vector&flag){
        if(star>=nums.size())return;
        for(int i=star;i0&&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> subsetsWithDup(vector& nums) {
        vectorflag(nums.size(),false);
        sort(nums.begin(),nums.end());
        ans.push_back(path);
        backtracking(nums,0,flag);
        return ans;
    }
};

你可能感兴趣的:(回溯,力扣刷题,算法,leetcode)