题解 | #有重复项数字的所有排列#

有重复项数字的所有排列

http://www.nowcoder.com/practice/a43a2b986ef34843ac4fdd9159b69863

import java.util.*;

public class Solution { public ArrayList<ArrayList> res = new ArrayList<>(); public ArrayList<ArrayList> permuteUnique(int[] num) { int n = num.length; if(n == 0 || num == null) return res; Arrays.sort(num); ArrayList list = new ArrayList<>(); dfs(num,list,new boolean[num.length]); return res; } public void dfs(int[] num,ArrayList list,boolean[] f) { if(list.size() == num.length) { res.add(new ArrayList<>(list)); return; } for(int i = 0; i < num.length; i++) { if(f[i]) continue; if(i > 0 && num[i] == num[i - 1] && !f[i - 1]) continue; f[i] = true; list.add(num[i]); dfs(num,list,f); list.remove(list.size() - 1); f[i] = false; } } }

我居南半坡 文章被收录于专栏

多刷题,积蓄力量,欢迎讨论

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务