- 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.
- time: o(logn) space:o(1)
- public int findPeakElement(int[] nums) {
- int left = 0,
- right = nums.length - 1;
- while (left + 1 < right) {
- int mid = left + (right - left) / 2;
- if (mid <= (right - 1) && nums[mid] <= nums[mid + 1]) {
- left = mid;
- } else {
- right = mid;
- }
- }
- return nums[left] > nums[right] ? left: right;
- }
来源: http://www.bubuko.com/infodetail-2506563.html