162. Find Peak Element
/*
* @lc app=leetcode id=162 lang=cpp
*
* [162] Find Peak Element
*/
class Solution {
public:
int findPeakElement(vector<int>& nums) {
if (nums.size() == 1) return 0;
int start = 1, end = nums.size() - 1;
while (start < end) {
int mid = start + (end - start) / 2;
if (start == mid) {
start = nums[end] > nums[start] ? end : start;
break;
}
if (!(nums[mid] > nums[mid - 1])) end = mid - 1;
else start = mid;
}
return start == 1 && nums[0] > nums[start] ? 0 : start;
}
};
Last updated