A peak element is an element that is strictly greater than its neighbors. Given an integer array nums, find a peak element, and return its index. If the array contains multiple peaks, return the index to any of the peaks. You may imagine that nums[-1] = nums[n] = -∞. You must write an algorithm that runs in O(log n) time.
def findPeakElement(self, nums: List[int]) -> int:
low = 0
high = len(nums) - 1
while low < high:
mid = low + (high - low) // 2
if nums[mid] > nums[mid + 1]:
high = mid
else:
low = mid + 1
return low