#include <vector> class Solution { public: vector<vector<int>> ans; set<vector<int>> temp; vector<int>nums; vector<int> t; vector<int> used; void arrange(int index){ if(index==nums.size()){ if(temp.count(t)==0){ ans.push_back(t); temp.insert(t); } return ; } for(int i=0;i<nums.size();i++){ if(used[i]==0){ used[i]=1; t.push_back(nums[i]); arrange(index+1); t.pop_back(); used[i]=0; } } } vector<vector<int> > permuteUnique(vector<int> &num) { this->nums=num; sort(nums.begin(),nums.end()); used.resize(8); arrange(0); return ans; } };