class Solution {
public:
    vector<vector<int>> permuteUnique(vector<int>& nums) {
    sort(nums.begin(),nums.end());
    vector<vector<int>> res;
    permuteUnique(nums,0,res);
    return res;
}
    
private:
void permuteUnique(vector<int> nums,int begin,vector<vector<int>>& res) {
    if(begin == nums.size() - 1)
    {
        res.push_back(nums);
        return;
    }

    for(int i = begin;i < nums.size();i++)
    {
        if(begin!=i && nums[begin]==nums[i]) continue;
        swap(nums[begin],nums[i]);
        permuteUnique(nums,begin+1,res);
    }

}
};

与46题不同的是这里不需要在函数permuteUnique处对nums以引用的方式传递,详细原因参考leetcode