加速双重求和的最佳方法
我的代码可以正常运行,但我希望它能在1秒钟内完成。我要怎么做呢?
import math
import time
t=time.time()
line = input().split(' ')
Alen = int(line[0])
Blen = int(line[1])
A = input().split(' ')
B = input().split(' ')
total=0
for i, Ai in enumerate(A):
for j, Bj in enumerate(B):
total+= abs((int(Ai)-int(Bj)))*(int(i)-int(j))
print(total)#, time.time()-t)
1 个回答
2
这样应该会快一点;不过没有一些样本数据的话,无法准确知道快了多少。
import time
def get_ints(s):
return [int(i) for i in s.split()]
t = time.time()
Alen, Blen = get_ints(input())
A = get_ints(input())
B = get_ints(input())
total = sum(abs(Ai - Bj) * (i - j) for i,Ai in enumerate(A) for j,Bj in enumerate(B))
print(total)#, time.time()-t)