问题:
题目来源:力扣(LeetCode)
leetcode90.子集II
难度:中等
分析: 回溯法。 在子集问题上进行去重处理,加一个判断条件跳过重复元素,去重问题记得先排序。
解决方法: 1:回溯法
class Solution:
def
subsetsWithDup(self
, nums
: List
[int
]) -> List
[List
[int
]]:
if nums
== []: return [[]]
def
backtrack(idx
):
# 不需要等一条路径回溯结束再保存值,每一步都要保存值。
res
.append(path
[:])
for i
in range(idx
, len(nums
)):
if i
> idx and nums
[i
] == nums
[i
- 1]:
continue
path
.append(nums
[i
])
backtrack(i
+ 1)
path
.pop()
nums
.sort()
path
= []
res
= []
backtrack(0)
return res
转载请注明原文地址:https://blackberry.8miu.com/read-4337.html