峰值元素是指其值大于左右相鄰值的元素。
給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。
數組可能包含多個峰值,在這種情況下,返回任何一個峰值所在位置即可。
你可以假設 nums[-1] = nums[n] = -∞。
示例 1:
輸入: nums = [1,2,3,1]
輸出: 2
解釋: 3 是峰值元素,你的函數應該返回其索引 2。
代碼
class Solution {public int findPeakElement(int[] nums) {int l=1,m=nums.length,r=m-1;while (l<=r){int mid=(r-l)/2+l;if(nums[mid]<=nums[mid-1])判斷位于峰值的上升還是下降緣r=mid-1;else l=mid+1;}return r;}
}