019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
33 lines
597 B
Python
33 lines
597 B
Python
from math import floor
|
|
|
|
def find_magic_index_brute(xs):
|
|
for i in range(len(xs)):
|
|
if xs[i] == i:
|
|
return i
|
|
return -1
|
|
|
|
def mid(lo, hi):
|
|
return lo + floor((hi - lo) / 2)
|
|
|
|
def find_magic_index(xs):
|
|
lo, hi = 0, len(xs) - 1
|
|
return do_find_magic_index(xs, 0, len(xs) - 1)
|
|
|
|
def do_find_magic_index(xs, lo, hi):
|
|
pass
|
|
|
|
xss = [
|
|
[],
|
|
[-1,0,2,4,5,6],
|
|
[1,1,1,1,1,5],
|
|
[-2,-2,-2,-2,4],
|
|
[1,2,3,4,5],
|
|
]
|
|
|
|
for xs in xss:
|
|
print(xs)
|
|
a = find_magic_index_brute(xs)
|
|
b = find_magic_index(xs)
|
|
print(a, b)
|
|
assert a == b
|
|
print("Success!")
|