我有一段代码来查找可以与数组的非相邻元素形成的最大和。如何打印对总和有贡献的元素?
def find_max_sum(arr):
incl = 0
excl = 0
for i in range(len(arr)):
if excl>incl:
new_excl = excl
else:
new_excl = incl
incl = excl + arr[i]
excl = new_excl
return (excl if excl>incl else incl)
答案 0 :(得分:0)
我认为您正在尝试实现Kadane的算法,但状态不尽理想。 Kadane的算法应如下所示:
>>> ', '.join({'a':'x', 'b':'y'}.keys())
'a, b'
该算法将为您提供总和(对于def kadane(arr):
maxseen = 0
window = 0
for i in range(len(arr)):
window = max(arr[i], window+arr[i])
maxseen = max(window, maxseen)
return maxseen
的空子数组,最小值为0),而不是子数组。因此,您只需要记住如何提出解决方案即可:
arr