我已经解决了有关leetcode here的问题子集问题
但是我很难理解它的时间复杂性,因为它涉及到包含复制列表的回溯算法。
class Solution:
def subsets(self, nums):
if not nums:
return []
results = [[]]
path = []
def dfs(i):
for i in range(i, len(nums)):
path.append(nums[i])
results.append(path[:])
dfs(i + 1)
path.remove(nums[i])
dfs(0)
return results
请注意,列表是通过
复制的path[:]
请问有人可以对此代码进行清晰的时间复杂度分析吗?