简单的回朔题
class Solution { public: void func(vector<int>& visit,vector<int>& nums,vector<int>& temp,set<vector<int>>& result) { if(temp.size()==nums.size()) result.insert(temp); else { for(int i=0;i<nums.size();i++) { if(visit[i]==0) { visit[i]=1; temp.push_back(nums[i]); func(visit,nums,temp,result); visit[i]=0; temp.pop_back(); } } } } vector<vector<int>> permuteUnique(vector<int>& nums) { vector<int> visit(nums.size(),0); vector<int> temp; set<vector<int>> result; func(visit,nums,temp,result); vector<vector<int>> resultFinal; for(set<vector<int>>::iterator it=result.begin();it!=result.end();it++) resultFinal.push_back(*it); return resultFinal; } };