A peak element is an element that is greater than its neighbors.Given an input array nums, where nums[i] ≠ nums[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 nums[-1] = nums[n] = -∞.Example 1:Input: nums = [1,2,3,1]Output: 2Explanation: 3 is a peak element and your function should return the index number 2.Example 2:Input: nums = [1,2,1,3,5,6,4]Output: 1 or 5 Explanation: Your function can return either index number 1 where the peak element is 2, or index number 5 where the peak element is 6.Note:Your solution should be in logarithmic complexity.难度:medium题目:峰值指当前元素大于其邻居,给定一数组相离元素不等,找出其峰值并返回其索引。数组可能包含多个峰值,返回任一即可。注意:时间复杂度为对数思路:二叉搜索,nums[mid] > nums[mid + 1] 留下左边,nums[mid] > nums[mid + 1]意味着nums[mid]可为潜在的峰值,如果左边是升序则其为峰值,否则继续查找。如果mid已是最左边的数,则为其为峰值。Runtime: 2 ms, faster than 100.00% of Java online submissions for Find Peak Element.Memory Usage: 37.6 MB, less than 100.00% of Java online submissions for Find Peak Element.public class Solution {public int findPeakElement(int[] nums) { int left = 0, right = nums.length - 1; while (left < right) { int mid = left + (right - left) / 2; if (nums[mid] > nums[mid + 1]) { right = mid; } else { left = mid + 1; } } return left;}}