如何在较短的时间内将列表中的每个元素添加到同一列表中的另一个元素?

问题描述 投票:0回答:4
Input : l1 = [1,2,3,4,5,6]
Output :     [7, 8, 9, 10, 11, 11]

查找列表中所有元素的每对的最大和。通常,我必须将列表中的每个元素添加到另一个元素(而不是自身)。下面是我尝试的代码。我知道这是(n^2)

的复杂性

任何降低复杂性的更好方法(可以同时是时间和空间)?

任何更好的方法(可能使用某些模块或仅使用一个for循环)?

是否可以通过单个for循环来实现?

l2=[]
l3=[]
for i in range(len(l1)):
   for j in range(len(l1)):
      if i!=j:
         l2.append(l1[i]+l1[j])
   l3.append(max(l2))
   l2.clear()



print(l3)
[7, 8, 9, 10, 11, 11]
python-3.x list for-loop time-complexity space-complexity
4个回答
0
投票

对于初学者,我们可以使用排序以发挥自己的优势。 Python排序方法sortedO(n log n)时间内运行。 (请参阅此问题:What is the complexity of this python sort method?


0
投票

您可以执行以下操作:


0
投票

这是我的意见书。您可以使用更Python化的方式进行操作。


0
投票

您可以在O(n)中执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.