我正试图编写一个程序,在一维数组中找到非相邻元素的最大和,到目前为止我有:
def find_max_sum(arr):
incl = 0
excl = 0
for i in arr:
# Current max excluding i
new_excl = excl if excl>incl else incl
# Current max including i
incl = excl + i
excl = new_excl
# return max of incl and excl
return (excl if excl>incl else incl)
它起作用了。我唯一的问题是,如果不使用for循环,如何将这个函数转换成递归函数?我的大脑似乎找不到办法。你知道吗
步骤1:重写函数,使其更具python风格
步骤2:现在很容易将其重写为递归函数
现在你打电话来
第一步不是绝对必要的。毕竟,它是关于
for i in arr:
中的代码块以及它们如何影响incl
和excl
。不过,它可能会帮助你重写。你知道吗相关问题 更多 >
编程相关推荐