47. Permutations II
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2] have the following unique permutations:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
题意:
方法一:
意思同46. Permutations,不同的就是给定的数组集合是有重复元素出现的,但是结果集中不能出现重复的结果排列。
思路:
递归回溯法,先把给定集合排序,然后在递归回溯的过程中,当遍历同一层的元素的时候要比较元素是否相等,相等要进行剪枝,因为同一层相同元素出现并入结果集中肯定会出现重复结果组合。
1 | class Solution { |
方法二:
直接利用C++的STL函数库next_permutation()函数,函数详情next_permutation() 。
1 | class Solution { |
Java Code:
1 | class Solution { |