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)

leetcode-Permutations II-47

LeetCode46,47 Permutations, Permutations II

leetcode 46-Permutations and 47-Permutations II

47. Permutations II

47. Permutations II