首页 文章

Python最大成对产品时间限制超出错误

提问于
浏览
1
n = int(input())
a = [int(x) for x in input().split()]
product = 0
for i in range(n):
  for j in range(i + 1, n):
    product = max(product, a[i] * a[j])
print(product)

当我将上述代码提交给Corsera的编码判断系统时,

Failed case #4/17: time limit exceeded (Time used: 9.98/5.00, memory used: 20918272/536870912.)

已被退回 . 我该怎么改变它?

2 回答

  • 0

    首先按降序对项目进行排序,然后将排序列表中的第一个和第二个相乘(当然,如果所有都是正数),是不是更少耗费时间?

  • 0

    它在O(n ^ 2) . 您可以对 a 进行排序,并在 a 中选择两个较大的值作为O(n log(n))的结果(如果列表 a 的输入值为正) .

    input_list = sorted(a)
    product = max(a[0]*a[1], a[-1] * a[-2]) #as suggested in comments if there is negative values
    

相关问题