一、题目内容
二、题解
解法1:
思路
boolean visited[]
代码
public class Solution { ArrayList<ArrayList<Integer>> ans = new ArrayList<>(); ArrayList<Integer> tempAns = new ArrayList<>(); boolean[] visited; public ArrayList<ArrayList<Integer>> permuteUnique(int[] num) { Arrays.sort(num); visited = new boolean[num.length]; recur(num, 0); return ans; } private void recur(int[] num,int count){ if(count == num.length){ ans.add(new ArrayList(tempAns)); return; } for(int i = 0;i<num.length;i++){ if(i>0&&!visited[i]&&!visited[i-1]&&num[i] == num[i-1]){ continue; } if(!visited[i]){ visited[i] = true; tempAns.add(num[i]); recur(num,count+1); visited[i] = false; tempAns.remove(tempAns.size()-1); } } }}