我对python相当陌生,在youtube上偶然发现了一门动态编程课程,我认为这会帮助我更好地理解这个概念
现在,我一直在努力理解它。。。有没有人有时间解释一下这个代码的工作方式
该函数将目标和和和数字数组作为参数。 该函数应返回一个数组,该数组包含与目标数字相加的任意数字组合
def howSum(targetSum, numbers, memo = {}):
if targetSum in memo : return memo[targetSum]
if targetSum == 0 : return []
if targetSum < 0 : return None
for num in numbers:
remainder = targetSum - num
remainderResult = howSum(remainder, numbers, memo)
if remainderResult != None:
memo[targetSum] = [*remainderResult, num]
return memo[targetSum]
memo[targetSum] = None
return None
最初的代码是为JS编写的,我将其翻译成Python,但我正在为以下几件事而挣扎:即:
在定义末尾返回语句
具体来说,这一行:
备注[targetSum]=[*remainderResult,num]
有没有我遗漏的概念
最好简而言之,您的代码应该评估哪些函数来节省其他人的时间
请注意,如果您在执行代码时到达这一行,那么您没有找到答案,因此返回None,这意味着找不到答案
您的函数试图找到一种方法,将targetSum写为数字元素子集的和,并将这些元素存储在memo[targetSum]中。这正是这行代码中发生的情况
我试图用评论来解释:
有关更具Python风格的备忘录,请参见this answer
相关问题 更多 >
编程相关推荐