Given A collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2]
The following unique permutations:
[ [1,1,2], [1,2,1], [2,1,1]
1 Public classSolution {2list<list<integer>> ans =NewArraylist<list<integer>>();3 PublicList<list<integer>> Permuteunique (int[] nums) {4list<integer> list =NewArraylist<integer>();5 Boolean[] Visit =New Boolean[nums.length];6 Arrays.sort (nums);7 DFS (list,nums,visit);8 returnans;9 }Ten One Public voidDFS (list<integer> List,int[] Nums,Boolean[] visit) { A if(list.size () = =nums.length) { - Ans.add (list); - return; the } - - for(inti = 0; i < nums.length; i++){ - if(Visit[i] | | (i>0 && nums[i] = = Nums[i-1] &&!visit[i-1]))Continue; +Visit[i] =true; -list<integer> tmp =NewArraylist<>(list); + Tmp.add (Nums[i]); A DFS (tmp,nums,visit); atVisit[i] =false; - } - } -}
Permutations Java Solutions
Permutations II Java Solutions