subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
47
users/wpcarro/scratch/facebook/find-rotation-point.py
Normal file
47
users/wpcarro/scratch/facebook/find-rotation-point.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
from math import floor
|
||||
|
||||
def find_rotation(xs):
|
||||
if xs[0] < xs[-1]:
|
||||
return xs[0]
|
||||
beg, end = 0, len(xs) - 1
|
||||
found = False
|
||||
count = 10
|
||||
while not found and count >= 0:
|
||||
i = beg + floor((end - beg) / 2)
|
||||
if xs[beg] < xs[i]:
|
||||
beg = i
|
||||
i = beg + floor((end - beg) / 2)
|
||||
elif xs[beg] > xs[i]:
|
||||
end = i
|
||||
found = xs[i - 1] > xs[i]
|
||||
count -= 1
|
||||
return xs[i]
|
||||
|
||||
|
||||
xs = [(['ptolemaic',
|
||||
'retrograde',
|
||||
'supplant',
|
||||
'undulate',
|
||||
'xenoepist',
|
||||
'zebra',
|
||||
'asymptote',
|
||||
'babka',
|
||||
'banoffee',
|
||||
'engender',
|
||||
'karpatka',
|
||||
'othellolagkage',
|
||||
], "asymptote"),
|
||||
(['asymptote',
|
||||
'babka',
|
||||
'banoffee',
|
||||
'engender',
|
||||
'karpatka',
|
||||
'othellolagkage',
|
||||
], "asymptote"),
|
||||
]
|
||||
|
||||
for x, expected in xs:
|
||||
result = find_rotation(x)
|
||||
print(x, result)
|
||||
assert result == expected
|
||||
print("Success!")
|
||||
Loading…
Add table
Add a link
Reference in a new issue