
- class Solution {
- public:
- vector
int>>ans; - vector<int>path;
- set
int> >st; - void dfs(vector<int>& nums,vector<bool>&used ){
- if(path.size()==nums.size()){
- if(!st.count(path)){
- ans.push_back(path);
- st.insert(path);
- }
- }
- for(int i=0;i
size();i++){ - if(used[i]==true)continue;
- path.push_back(nums[i]);
- used[i]=true;
- dfs(nums,used);
- path.pop_back();
- used[i]=false;
- }
- }
- vector
int>> permuteUnique(vector<int>& nums) { - vector<bool>used(nums.size(),false);
- dfs(nums,used);
- return ans;
- }
- };