LeetCode - Permutations II

class Solution {
public:
    vector<vector<int>> permuteUnique(vector<int>& nums) {
        set<vector<int>> res;
        permute(nums, 0, res);
        return vector<vector<int>>(res.begin(), res.end());
    }
    void permute(vector<int>& nums, int start, set<vector<int>>& res){
        if(start==nums.size()) res.insert(nums);
        for(int i=start;i<nums.size();i++){
            if(start!=i && nums[start]==nums[i]) continue;
            swap(nums[start], nums[i]);
            permute(nums, start+1, res);
            swap(nums[start], nums[i]);
        }
    }
};

猜你喜欢

转载自blog.csdn.net/real_lisa/article/details/82943756