47-permutations-ii¶
Try it on leetcode
Description¶
Given a collection of numbers, nums
, that might contain duplicates, return all possible unique permutations in any order.
Example 1:
Input: nums = [1,1,2] Output: [[1,1,2], [1,2,1], [2,1,1]]
Example 2:
Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Constraints:
1 <= nums.length <= 8
-10 <= nums[i] <= 10
Solution(Python)¶
class Solution:
def permuteUnique(self, nums: List[int]) -> List[List[int]]:
res = []
def backtrack(comb, counter):
if len(comb) == len(nums):
res.append(list(comb))
return
for num in counter:
if counter[num] > 0:
comb.append(num)
counter[num] -= 1
backtrack(comb, counter)
counter[num] += 1
comb.pop()
backtrack([], Counter(nums))
return res