Description

A peak element is an element that is strictly greater than its neighbors. Given a 0-indexed 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 must write an algorithm that runs in O(log n) time.

Examples

Input:nums = [1,2,3,1]
Output:2
Explanation:

3 is a peak element and index 2 is returned.

Input:nums = [1,2,1,3,5,6,4]
Output:5
Explanation:

Either index 1 (element 2) or index 5 (element 6) can be returned.

Input:nums = [1]
Output:0
Explanation:

Edge case returning zero.

Constraints

  • 1 ≤ nums.length ≤ 1000
  • -2³¹ ≤ nums[i] ≤ 2³¹ - 1
  • nums[i] != nums[i + 1] for all valid i.

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!