https://leetcode-cn.com/problems/permutations-ii/
[bug summary]
1 array index vs array element
[bug]
class Solution {
int[] nums;
int n;
boolean used[];
public List<List<Integer>> permuteUnique(int[] nums) {
this.nums = nums;
this.n = nums.length;
used = new boolean[n];
List ret = new ArrayList<>();
for(int i=0;i<n;i++){
List path = new ArrayList<>();
dfs(i, path, ret);
}
return ret;
}
void dfs(int inx, List path, List ret){
path.add(nums[inx]);
used[inx] = true;
if(path.size()==n){
ret.add(new ArrayList<>(path));
return;
}
int pre = -1;
for(int i=0;i<n;i++){
if(used[i]==true){
continue;
}
if(pre!=-1 && nums[i]==nums[pre]){
continue;
}
pre = i;
dfs(i, path, ret);
}
path.remove(path.size()-1);
used[sta] = false;
}
}