python 最大 Pairwise Product 时间限制误差

python maximum Pairwise Product time limit error

n = int(input(" "))

arr = list(map(int, input(" ").strip().split()))[:n]

a = arr[0];
b = arr[1];

for i in range (0, n):
    for j in range (i+1, n):
        if(arr[i] * arr[j] > a * b): 
            a = arr[i];
            b = arr[j];
                       
print("", a*b )

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

失败案例 #4/17:超出时间限制(使用时间:10.00/5.00,使用内存:22753280/2147483648。)

已返回。我该如何改变它?谢谢。

我会先对值进行排序,然后取两个最大的元素(O(nlog(n)) vs O(n^2)):

a, b = sorted(arr)[-2:]

但是了解 arr 中值的域是什么会很有用(因为负数会破坏我的方法)。