类型:数组
-
- 子集 II 💛
https://leetcode-cn.com/problems/subsets-ii/
❓ 整数数组 nums 中可能包含重复元素,返回该数组所有可能的子集。解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。
💡 回溯法

红框里面的要剪掉,具体来说是排序后,遍历到的当前元素与上一个元素相等时,则跳过。即下划线的这几个数 [1, 2, 2, 2, 4, 5, 5, 7] 。
class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: nums.sort() n = len(nums) track = [] ans = [] def trackback(start): ans.append(track[:]) for i in range(start, n): if i > start and nums[i] == nums[i - 1]: continue track.append(nums[i]) trackback(i + 1) track.pop() trackback(0) return ans