个人思路总结:
跟46题相比,只需加一步去重即可,我们这里采用set去重。==这里需要注意一下set去重的具体实现方式
代码如下:
class Solution {
public:
set<vector<int>> result;
vector<vector<int>> permuteUnique(vector<int>& nums) {
dfs(nums,0);
return vector<vector<int>>(result.begin(),result.end());
}
void dfs(vector<int>& nums, int begin)
{
if(begin==nums.size())
{
result.insert(nums);
return;
}
for(int i=begin;i<nums.size();i++)
{
swap(nums[i],nums[begin]);
dfs(nums,begin+1);
swap(nums[i],nums[begin]);
}
}
};