Find Peak Element

Find Peak Element is a Medium Data Structures and Algorithms interview problem you can solve, run and submit on Thita.ai. It belongs to the Binary Search Patterns pattern, in the Find Min/Max in Rotated Sorted Array subpattern.

Problem statement

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 number 2.

Example 2:

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

Constraints:

- 1 <= nums.length <= 1000

- -231 <= nums[i] <= 231 - 1

- nums[i] != nums[i + 1] for all valid i.

Topics and companies

Topics: Array, Binary Search.

Reported in interviews at Facebook, Amazon, Google, Bloomberg, Quora.

How to practise Find Peak Element on Thita.ai

Starter code is provided in C, C#, C++, Go, Java, JavaScript and Python. Your solution runs against 5 test cases for this problem, with the AI coach available for a hint when you are stuck rather than a finished answer. The reference solution runs in O(logn) time and O(1) space.

Open Find Peak Element in the code editor, or read the Find Peak Element editorial for a worked solution with its approach and complexity analysis.

Where Find Peak Element sits in the DSA pattern sheet

Problems related to Find Peak Element

Other problems that use the same Find Min/Max in Rotated Sorted Array and Binary Search Patterns techniques:

Opening the problem

Progress is saved as you study.