【发布时间】:2023-01-30 22:48:54
【问题描述】:
我有一个元组列表:
tuple_list = [(1,3),(4,7),(8,1),(5,4),(9,3),(7,2),(2,7),(3,1),(8,9),(5,2)]
从这个列表中,我想返回元组中两个数字的最小距离。
在天真的方法中,我会做以下事情:
distance = 10
for tup in range(len(tuple_list)):
if abs(tup[0]-tup[1]) < distance:
distance = abs(tup[0]-tup[1])
然后,最后,distance 将等于 1。
但是,我怀疑有一种更快的方法来获得最小距离。我怎么能这样做?
【问题讨论】:
-
您的算法已经是 O(n) 为什么您认为有更快的方法?或者你的意思是一种需要更少代码的方法?
-
这是一个连续的过程,其中的计算不相互依赖。因此,我怀疑我们可以并行计算。
-
澄清一下:在天真的方法中,存在串行依赖性。但是我们应该能够并行计算所有距离,然后返回最小值。
-
您的代码应该无法运行,需要将
for tup in range(len(tuple_list)):更改为for tup in tuple_list:
标签: python list loops distance