Find Peak Element
franklinqin0 ArrayBinary Search
Solution
Binary Search
TODO: explain
Complexity
time: O(n)
space: O(1)
def findPeakElement(self, nums: List[int]) -> int:
n = len(nums)
lo, hi = 0, n-2
while lo <= hi:
mid = (lo + hi) // 2
if nums[mid] < nums[mid+1]:
lo = mid+1
else:
hi = mid-1
return lo
1
2
3
4
5
6
7
8
9
10