题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
class Solution { public: int findPeakElement(vector<int>& nums) { // write code here if ((nums.size() == 1) || nums[0] > nums[1] ) return 0; if ( nums[nums.size() - 1] > nums[nums.size() - 2]) return nums.size() - 1; int left = 1, right = nums.size() - 2; while (left <= right) { int mid = left + ((right - left) >> 1); if (nums[mid] > nums[mid + 1] && nums[mid] > nums[mid - 1]) return mid; else if (nums[mid] < nums[mid + 1]) left = mid + 1; else if (nums[mid] < nums[mid - 1]) right = mid - 1; } return -1; } };