python嵌套列表:返回和最大的子数组

2024-05-19 02:25:31 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我自己对著名的连续和问题的修改。给定一个由嵌套子数组组成的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}$

Tags: in版本forreturnifdef方式数组
2条回答

这听起来根本不像是连续和问题。这就足够了:

max(arr, key=sum)

代码中的错误仅仅是您忘记了在ind的同时更新curr。在

当发现一个数组的和大于其当前值时,需要更新curr

if sum(j) > curr:
    ind = i
    curr = sum(j)

顺便说一句,您可能需要创建一些局部变量来存储sum(j),这样就不会对同一事物进行两次求和。

相关问题 更多 >

    热门问题