All problems
MediumBinary Search

Find Peak Element

googleamazonmetamicrosoftappleuber

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 may imagine that nums[-1] = nums[n] = -∞. In other words, an element is always considered to be strictly greater than a neighbor that is outside the array.

You must write an algorithm that runs in O(log n) time.

Example 1:

Input: nums = [1,2,3,1]
Output: 2
Explanation: 3 is a peak element and your function should return the index 2.

Example 2:

Input: nums = [1,2,1,3,5,6,4]
Output: 5
Explanation: Your function can return either index 1 (where the peak element is 2) or index 5 (where the peak element is 6).

Examples

Example 1

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

Output: 2

Explanation: 3 is a peak element at index 2.

Example 2

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

Output: 5

Explanation: 6 is a peak element at index 5. Index 1 (value 2) is also a valid answer.

Example 3

Input: nums = [1]

Output: 0

Explanation: Since nums[-1] and nums[1] are both -∞, nums[0] = 1 is a peak.

Constraints

  • -1 <= nums.length <= 1000
  • --2^31 <= nums[i] <= 2^31 - 1
  • -nums[i] != nums[i + 1] for all valid i.

Optimal Complexity

Time

O(log n)

Space

O(1)

One problem, two ways to prep

Choose between solo practice and interview simulation

Practice Mode keeps things simple with code + tests. AI Interview Mode adds voice, pressure, and a post-round score summary.