【发布时间】:2017-12-02 15:34:06
【问题描述】:
我正在尝试查找以下两个递归函数的复杂性,但不知道如何对递归函数进行复杂性分析
找到所有可能的子集
def subsetsHelper(self, nums, index, path, res):
if path is None:
return
res.add(path)
for i in range(index, len(nums)):
self.subsetsHelper(nums, i + 1, path + [nums[i]], res)
def subsetsWithDup(self, nums):
res = []
self.subsetsHelper(nums, 0, [], res)
return res
找到所有可能的排列
def permuteHelper(self, nums, index, path, res):
if len(nums) == 0:
res.append(path)
for i in range(len(nums)):
copy = list(nums)
val = copy.pop(i)
self.permuteHelper(copy, i, [val] + path, res)
def permute(self, nums):
res = []
self.permuteHelper(nums, 0,[], res)
return res
还有,函数的递推关系是什么
【问题讨论】: