gpt4 book ai didi

python-3.x - 两个列表之间的最小差值对

转载 作者:行者123 更新时间:2023-12-05 05:07:06 26 4
gpt4 key购买 nike

我有两个 list 整数。我需要从每个列表中找到一个绝对差异最小的元素。

执行时间为 1 秒,我的代码超出了允许的时间。如何优化它?

m = int(input())   #number of elements in list1
list1 = list(map(int, input().split()))
z = int(input()) #number of elements in list2
list2 = list(map(int, input().split()))
minDiference = abs(list1[0] - list2[0])
for i in range (m):
for j in range(z):
diference = abs(list1[i] - list2[j])
if difference < mindifference:
mindifference = difference
print(mindifference)

最佳答案

您当前的复杂度是 O(m*z),您可以将其降低到 O(max(m*log(m), z*log(z)) 通过对列表进行排序!

l1 = sorted(list1)
l2 = sorted(list2)

i = j = 0

minimum = float('inf')

while i < m and j < z:
diff = l1[i] - l2[j]
minimum = min(minimum, abs(diff))
if diff < 0: # Means the value of the current position is lower than the l2's, move the l1's pointer
i += 1
elif diff > 0: # Quite similar
j += 1
else:
break

print(minimum)

关于python-3.x - 两个列表之间的最小差值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59421631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com