mediumDSA

How do you find a peak element in an array?

347 views
01

Understand the problem

Explain peak finding in O(log n).

binary-searcharrays
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Binary search toward the peak
Run Playground
def find_peak(nums):
    lo, hi = 0, len(nums) - 1
    while lo < hi:
        mid = (lo + hi) // 2
        if nums[mid] < nums[mid + 1]:
            lo = mid + 1          # uphill to the right
        else:
            hi = mid              # peak is mid or to the left
    return lo


# --- demo ---
print(find_peak([1, 2, 3, 1]))   # 2  (nums[2] = 3 is a peak)
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.