这是我自己对著名的连续和问题的修改。给定一个由嵌套子数组组成的python数组,如何以最佳方式返回和最大的子数组?我尝试了这个O(n)实现,它总是给我最后一个子数组,但我不明白为什么。在
def maxsublist(arr):
curr = sum(arr[0])
ind = 0
for i,j in enumerate(arr):
if sum(j)>curr:
ind = i
return arr[ind]
maxsublist([[1,2],[4,5],[5,96,1],[1,2,3]])
返回[1,2,3]。在
***注意:我有一个更好的版本使用Python的sorted函数,但这感觉有点太像作弊了。在
^{pr2}$
这听起来根本不像是连续和问题。这就足够了:
代码中的错误仅仅是您忘记了在
ind
的同时更新curr
。在当发现一个数组的和大于其当前值时,需要更新
curr
:顺便说一句,您可能需要创建一些局部变量来存储
sum(j)
,这样就不会对同一事物进行两次求和。相关问题 更多 >
编程相关推荐