about summary refs log tree commit diff
path: root/scratch/facebook/recursion-and-dynamic-programming/magic-index.py
blob: 03b2de015dfef88e025011728c3f3ccf46cc36d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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!")