In [3]:
rotate = lambda lst, n: lst[n:] + lst[:n]
In [4]:
rotate([1, 5, 7, 3, 5, 2], 2)
Out[4]:
In [5]:
range(4, 26, 2)
Out[5]:
In [6]:
a = rotate(range(4, 26, 2), 4)
a
Out[6]:
In [7]:
a[:len(a)//2]
Out[7]:
In [44]:
def special_min(lst):
if len(lst) == 1:
return lst[0]
mid = (len(lst)-1) // 2
if lst[mid] > lst[-1]:
return special_min(lst[mid+1:])
elif lst[0] >= lst[mid]:
return special_min(lst[:mid+1])
else:
return lst[0]
In [45]:
special_min(a)
Out[45]:
In [46]:
special_min([2])
Out[46]:
In [50]:
special_min([5, 5])
Out[50]:
In [48]:
special_min([5, 3])
Out[48]:
In [51]:
special_min([3, 5])
Out[51]:
In [52]:
special_min([5, 5, 5])
Out[52]:
In [57]:
special_min([5, 5, 3])
Out[57]:
In [56]:
special_min([3, 5, 1])
Out[56]:
In [58]:
special_min([1, 3, 5])
Out[58]:
In [59]:
special_min([5, 1, 3])
Out[59]:
In [60]:
special_min([5, 5, 5, 5])
Out[60]:
In [61]:
special_min([5, 5, 3, 4])
Out[61]:
In [62]:
special_min([5, 5, 7, 2])
Out[62]:
In [63]:
special_min([3, 5, 1, 2])
Out[63]:
In [65]:
special_min([1, 3, 5, 8])
Out[65]:
In [66]:
special_min([5, 1, 3, 4])
Out[66]:
In [ ]: