Medium
Find the Index of the Large Integer — Python
Full explanation · Time O(logn) · Space O(1)
# Time: O(logn)
# Space: O(1)
class ArrayReader(object):
def compareSub(self, l, r, x, y):
pass
def length(self):
pass
class Solution(object):
def getIndex(self, reader):
"""
:type reader: ArrayReader
:rtype: integer
"""
left, right = 0, reader.length()-1
while left < right:
mid = left + (right-left)//2
if reader.compareSub(left, mid, mid if (right-left+1)%2 else mid+1, right) >= 0:
right = mid
else:
left = mid+1
return left