我目前正在研究一个函数,它接受一个序列,并以较高的索引返回从一个元素到另一个元素的最大增量。但是,函数没有返回正确的最大增量。你知道吗
我将for循环放在for循环中,然后尝试从所有差异中返回最大值,但没有成功(它说'int' object is not iterable
)
def max_increase(seq):
i = 0
maximum_increase = 0
for i in range(len(seq)):
difference = 0
for j in range(i + 1, len(seq)):
difference = seq[j] - seq[i]
if 0 <= maximum_increase < difference:
maximum_increase = difference
return maximum_increase
对于max_increase([1,2,3,5,0])
,它应该返回4
,因为从差异列表[1,2,4,-1,1,3,-2,2,-3,-5]
,最大值是4
。但是,我的函数返回一个负值-1
。你知道吗
您可以使用:
输出:
如果您已经收到调试代码的帮助,下面是一个简短的pythonic解决方案:
但更好的方法是避免创建不必要的切片(以颠倒顺序为代价):
产生
注:如果增加的是两个数字之间的距离,即无论符号如何,始终为正,则进行更改
你有缩进问题。这解决了它:
相关问题 更多 >
编程相关推荐