class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
def backtracking(path, start):
res.append(path[:])
for i in range(start, n): # 递归的终止条件为start大于n时
if nums[i] == nums[i - 1] and i > start: # 这个条件和第40题的组合总和 II一样
continue
else:
path.append(nums[i])
backtracking(path, i + 1)
path.pop()
n = len(nums)
nums = sorted(nums)
res = []
backtracking([], 0)
return res
90. 子集 II
最新推荐文章于 2025-12-08 12:04:40 发布
文章介绍了一个名为`subsetsWithDup`的函数,它采用回溯算法解决给定整数列表中包含重复元素的所有可能子集问题。通过递归和条件判断,确保不重复添加相同的元素。
278

被折叠的 条评论
为什么被折叠?



