LeetCode Problem

How to Solve Find Peak Element

To solve Find Peak Element, apply binary search over the array to identify a peak element. The approach takes advantage of the array's structure, ensuring that the solution is both efficient and scalable. Multiple peak positions may exist, and any one can be returned as a valid answer.

GhostInterview Help

Need help with Find Peak Element without spending extra time grinding it?

GhostInterview can read Find Peak Element from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #162Binary search over the valid answer spaceReviewed 2026-03-08
Difficulty
Medium
Primary pattern
Binary search over the valid answer space
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

To solve Find Peak Element, apply binary search over the array to identify a peak element. The approach takes advantage of the array's structure, ensuring that the solution is both efficient and scalable. Multiple peak positions may exist, and any one can be returned as a valid answer.

Problem Statement

You are given a 0-indexed integer array nums. A peak element is an element that is strictly greater than its neighbors. If nums[-1] and nums[n] are imagined to be -∞, then an element at the edge is also considered a peak if it is larger than its one neighbor. Your task is to find any peak element and return its index.

The array can have multiple peaks. In that case, returning the index of any peak is considered correct. The input guarantees that nums[i] != nums[i + 1] for all valid i, which ensures there is at least one peak. Your solution must run efficiently with binary search over the valid answer space.

Examples

Example 1

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

Output: 2

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

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.

Solution Approach

Binary Search over the Array

Apply binary search to the array, where the mid element is compared with its neighbors. Depending on whether the element at mid is larger or smaller than its neighbors, adjust the search space to find the peak.

Edge Case Handling

Consider edge cases, especially with peak elements at the start or end of the array. These cases are handled naturally by the binary search approach as the array's virtual boundaries are treated as -∞.

Time and Space Complexity Optimization

The binary search approach ensures that the solution runs in O(log n) time, and with O(1) space complexity. This is a significant optimization compared to a brute-force approach, which would require O(n) time.

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

The binary search approach reduces the time complexity to O(log n) by halving the search space with each iteration. The space complexity is O(1) since the solution only requires a few variables for tracking indices.

What Interviewers Usually Probe

  • Assessing the candidate's understanding of binary search and its application to specific problems.
  • Looking for clarity in explaining why binary search works for this problem, especially with edge cases.
  • Evaluating the candidate's ability to write efficient, optimal code without unnecessary operations.

Common Pitfalls or Variants

Common pitfalls

  • Misunderstanding the concept of a peak at the edges of the array, especially when dealing with virtual boundaries (-∞).
  • Forgetting to check both neighbors during the binary search, potentially missing the peak element.
  • Using a brute-force approach that results in higher time complexity instead of utilizing binary search.

Follow-up variants

  • Modify the problem to return all peak elements instead of just one.
  • Extend the problem to find the global peak that is strictly larger than all elements in the array.
  • Test variations on arrays with repeated elements and adapt the peak definition accordingly.

How GhostInterview Helps

  • GhostInterview provides a systematic walkthrough for solving problems like Find Peak Element, enhancing your ability to perform under pressure.
  • The platform helps you practice binary search efficiently, making you more confident when tackling similar problems during interviews.
  • By analyzing multiple solution patterns, GhostInterview helps you refine your problem-solving approach and prepare for a variety of technical challenges.

Topic Pages

FAQ

What is the best approach for solving Find Peak Element?

The best approach is using binary search over the valid answer space, which ensures that the solution is both time-efficient and space-efficient.

How does binary search help in the Find Peak Element problem?

Binary search helps by narrowing down the search space to find a peak element in O(log n) time, compared to a brute force approach that would take O(n) time.

Can Find Peak Element have multiple correct answers?

Yes, there can be multiple peaks in the array, and the solution can return any index corresponding to a peak element.

What is the time complexity of the optimal solution for Find Peak Element?

The time complexity of the optimal binary search solution is O(log n), which is much faster than a linear scan of the array.

How does GhostInterview assist with the Find Peak Element problem?

GhostInterview helps by providing practice problems, feedback on binary search techniques, and tips on optimizing solutions for problems like Find Peak Element.

GhostInterview Solver

Need direct help with Find Peak Element instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Find Peak Element from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.