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
- Binary Search Patterns pattern guide
- Find Min/Max in Rotated Sorted Array subpattern
- The full DSA patterns sheet
- All coding practice problems
Problems related to Find Peak Element
Other problems that use the same Find Min/Max in Rotated Sorted Array and Binary Search Patterns techniques:
- Find in Mountain Array — Hard, same subpattern
- Find Minimum in Rotated Sorted Array — Medium, same subpattern
- Peak Index in a Mountain Array — Medium, same subpattern
- Search in Rotated Sorted Array — Medium, same subpattern
- Search in Rotated Sorted Array II — Medium, same subpattern
- Binary Search — Easy, same pattern
Opening the problem
Progress is saved as you study.