好吧,我忽略了你说的其他一切,因为我看了之后已经吃了止痛药了。在Because I want to search for the minimum across a few sorted arrays of different sizes
你说你有几个“不同大小”的排序数组:>>> l1 = [4,5,6,7,8,9]
>>> l2 = [2,7,8,9,11,12,13,14]
>>> l3 = [3,6,9,12,15,18,21]
>>> l4 = [5,6,7,8]
你想找到最小值吗?在
^{pr2}$
给你!在
这里的“诀窍”:排序数组有一个“神奇”的属性:最小的元素总是在一端,通常在第一个位置!在
\o/
你看,没有指针,没有迭代,没有头痛!在
让我们把它变成一个函数:>>> def get_minimum_of_many_lists(*args):
... return min([l[0] for l in args])
...
>>> l1 = [4,5,6,7,8,9]
>>> l2 = [2,7,8,9,11,12,13,14]
>>> l3 = [3,6,9,12,15,18,21]
>>> l4 = [5,6,7,8]
>>>
>>> print(get_minimum_of_many_lists(l1,l2,l3))
2
>>> print(get_minimum_of_many_lists(l1,l3,l4))
3
>>> print(get_minimum_of_many_lists(l1,l4))
5
>>> print(get_minimum_of_many_lists(l1,l2,l3,l4,[0,1,2,3]))
0