0852-peak-index-in-a-mountain-array¶
Try it on leetcode
Description¶
You are given an integer mountain array arr of length n where the values increase to a peak element and then decrease.
Return the index of the peak element.
Your task is to solve it in O(log(n)) time complexity.
Example 1:
Input: arr = [0,1,0]
Output: 1
Example 2:
Input: arr = [0,2,1,0]
Output: 1
Example 3:
Input: arr = [0,10,5,2]
Output: 1
Constraints:
3 <= arr.length <= 1050 <= arr[i] <= 106arris guaranteed to be a mountain array.
Solution(Python)¶
class Solution:
def peakIndexInMountainArray(self, arr: List[int]) -> int:
n = len(arr)
l = 0
r = n-1
while l < r:
m = (l + r) // 2
if arr[m] > arr[m+1]:
r = m
else:
l = m + 1
return l