为了账号安全,请及时绑定邮箱和手机立即绑定

Python 最大成对乘积时间限制超出错误

Python 最大成对乘积时间限制超出错误

PIPIONE 2021-09-11 20:19:05
n = int(input())a = [int(x) for x in input().split()]product = 0for 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 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-09-11
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

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


input_list = sorted(a)

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



查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信