1、含有相同元素求排列问题
public void dfs(List<List<Integer>> ans,List<Integer> list,int[] nums,boolean[] visit){
if(list.size()==nums.length) {
ans.add(new ArrayList<Integer>(list));return ;
}
for(int i=0;i<nums.length;i++){
if(i>0&&nums[i]==nums[i-1]&&!visit[i-1]) //此处为去重
continue;
if(visit[i]) //此处为防止元素重新访问
continue;
list.add(nums[i]);
visit[i]=true;
dfs(ans,list,nums,visit);
list.remove(list.size()-1);
visit[i]=false;
}
}