我在 leetcode 上被问到一个关于如何返回唯一数字整数数组的幂集(所有子集)的问题。我尝试在 Python 中使用递归回溯解决方案,我在 for 循环中遍历数组的每个元素并进行递归函数调用。问题是每次我将一个新元素附加到 curr 时,它都会影响所有以前添加到 res 的列表。我不确定为什么。是不是因为 Python 把每个变量都当成了一个对象?那么如果curr变量被修改了,那么所有的curr对象都加到res了吗?任何建议将不胜感激。
class Solution:
def subsets(self, nums):
res = []
def helper(i, curr):
for j in range(i, len(nums)):
curr.append(nums[i])
res.append(nums)
helper(i+1, curr)
curr.pop()
helper(0, [])
return res