3 python algorithm list sub-array
我有一个这样的列表:
[1, 2, 5, 2, 7, 3, 9, 5...]
Run Code Online (Sandbox Code Playgroud)
有没有一种有效的方法可以在这里找到2个最大元素的总和:
for i in range():
for j in range():
Run Code Online (Sandbox Code Playgroud)
我发现了这个:"最大的子阵列问题"
但我还没完全明白它的作用.
sum(sorted([9,8,1,3,4,5,7,0])[-2:])
Run Code Online (Sandbox Code Playgroud)
这是一个线性时间解决方案:
#initialize these to huge negative numbers
largest = -1e10
second_largest = -1e11
l = [9,8,1,3,4,5,7,0]
for item in l:
if item > largest:
second_largest = largest
largest = item
elif item > second_largest:
second_largest = item
print(largest+second_largest)
# 17
Run Code Online (Sandbox Code Playgroud)