47. Permutations II
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了47. Permutations II相关的知识,希望对你有一定的参考价值。
只比1多了一句话
if(i > 0 && used[i-1] == true && nums[i] == nums[i-1]){ continue; }
1 public List<List<Integer>> permute(int[] nums) { 2 List<List<Integer>> res = new ArrayList<List<Integer>>(); 3 if(nums == null || nums.length == 0) { 4 return res; 5 } 6 Arrays.sort(nums); 7 boolean[] used = new boolean[nums.length]; 8 helper(nums, res, new ArrayList<Integer>(), used); 9 return res; 10 } 11 12 private void helper(int[] nums, List<List<Integer>> res, List<Integer> item, boolean[] used) { 13 if(item.size() == nums.length) { 14 if(!res.contains(item)) { 15 res.add(new ArrayList<Integer>(item)); 16 } 17 return; 18 } 19 for(int i = 0; i < nums.length; i++) { 20 if(i > 0 && used[i-1] == true && nums[i] == nums[i-1]){ 21 continue; 22 } 23 if(used[i] != true) { 24 used[i] = true; 25 item.add(nums[i]); 26 helper(nums, res, item, used); 27 item.remove(item.size() - 1); 28 used[i] = false; 29 } 30 } 31 return; 32 }
以上是关于47. Permutations II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 47. 全排列 II(Permutations II)
LeetCode46,47 Permutations, Permutations II