题目
给出一个数组,里面可能包含重复元素,返回所有的子数组。注意:不能包含重复的子数组。
Python题解
class Solution(object):
def subsetsWithDup(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
nums.sort()
path, res = [], []
self.dfs(nums, 0, path, res)
return res
def dfs(self, nums, index, path, res):
res.append(path)
for i in range(index, len(nums)):
if i > index and nums[i] == nums[i - 1]:
continue
self.dfs(nums, i + 1, path + [nums[i]], res)
本文介绍了一个Python算法,用于从可能包含重复元素的数组中找出所有不重复的子数组。通过递归深度优先搜索并结合排序的方法,确保了最终结果中没有重复的子数组。
152

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



