47. 全排列 II
Posted pc-m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了47. 全排列 II相关的知识,希望对你有一定的参考价值。
心得:这个题多了一个重复的,在选择的时候要注意重复条件
,不知道怎么去重就用set。
1 class Solution 2 3 public List<List<Integer>> permuteUnique(int[] nums) 4 List<List<Integer>> list=new ArrayList<>(); 5 if(nums==null||nums.length==0) 6 return list; 7 int[] visited=new int[nums.length]; 8 Arrays.sort(nums); 9 ans(nums,visited,0,new ArrayList(),list); 10 return list; 11 12 public void ans(int[] nums,int[] visited,int index,List<Integer> tmp, List<List<Integer>> list) 13 14 if(index==nums.length) 15 16 list.add(new ArrayList(tmp)); 17 18 for(int i=0;i<nums.length;i++) 19 20 if(i>0&&nums[i]==nums[i-1]&&visited[i-1]==0)//去重的重点!!!!! 21 continue; 22 if(visited[i]==1) 23 continue; 24 visited[i]=1; 25 tmp.add(nums[i]); 26 ans(nums,visited,index+1,tmp,list); 27 tmp.remove(tmp.size()-1); 28 visited[i]=0; 29 30 31
以上是关于47. 全排列 II的主要内容,如果未能解决你的问题,请参考以下文章