162 Find Peak Element
class Solution:
def findPeakElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
return self.b_search(0, len(nums) - 1, nums)
def b_search(self, left, right, nums):
if left == right:
return right # or left
else:
mid1 = int(left + (right - left) / 2)
mid2 = mid1 + 1
# left end of the peak -> move right
if (nums[mid1] < nums[mid2]):
return self.b_search(mid1 + 1, right, nums)
# otherwise on the right end of the peak
else:
return self.b_search(left, mid1, nums)Last updated