162. Find Peak Element
A peak element is an element that is strictly greater than its neighbors
Example 1:
- Input:
nums = [1,2,3,1] - Output:
2 - Explanation:
3is a peak element and your function should return the index number2.
Example 2:
- Input:
nums = [1,2,1,3,5,6,4] - Output:
5 - Explanation: Your function can return either index number
1where the peak element is2, or index number5where the peak element is6.
Constraints:
1 <= nums.length <= 1000-2^31 <= nums[i] <= 2^31 - 1nums[i] != nums[i + 1] for all valid i.
Solution
class Solution:
def findPeakElement(self, nums: list[int]) -> int:
left, right = 0, len(nums) - 1
while left < right:
mid = (left + right) // 2
if nums[mid] < nums[mid + 1]:
left = mid + 1
else:
right = mid
return left