# 162. Find Peak Element

Difficulty: Medium

Frequency: N/A

A peak element is an element that is greater than its neighbors.

Given an input array where `num[i] ≠ num[i+1]`, find a peak element and return its index.

The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

You may imagine that `num[-1] = num[n] = -∞`.

For example, in array `[1, 2, 3, 1]`, 3 is a peak element and your function should return the index number 2.

My solution:
Data structure:
Steps:
Complexity:
Runtime:
Space:
Test cases:
Corner cases:
Code:
```class Solution {
public:
int findPeakElement(vector<int>& nums) {
if (nums.empty()) return -1;
if (nums.size() == 1) return 0;
int n = nums.size();
int lo = 0, hi = n - 1, med;
while (lo < hi) {
med = lo + (hi - lo) / 2;
if (nums[med] < nums[med + 1]) lo = med + 1;
else hi = med;
}
return lo;
}
};
```

Another solution:
Data structure:
steps:
Complexity:
Runtime:
Space:
Code:

Things to learn:

## One thought on “162. Find Peak Element”

1. […]  Find Peak Element […]

Like