162 Find Peak Element 寻找峰值

峰值元素是指其值大于左右相邻值的元素。
给定一个输入数组,其中 num[i] ≠ num[i+1],找到峰值元素并返回其索引。
数组可能包含多个峰值,在这种情况下,返回到任何一个峰值所在位置都可以。
你可以想象得到  num[-1] = num[n] = -∞。
例如,在数组 [1, 2, 3, 1]中 3 是峰值元素您的函数应该返回索引号2。
注意:
你的解决方案应该是对数复杂度的。

详见:https://leetcode.com/problems/find-peak-element/description/

Java实现:

class Solution {
    public int findPeakElement(int[] nums) {
        int n=nums.length;
        if(n==0){
            return -1;
        }
        int left=0;
        int right=n-1;
        while(left<right){
            int mid=(left+right)>>1;
            if(nums[mid]<nums[mid+1]){
                left=mid+1;
            }else{
                right=mid;
            }
        }
        return right;
    }
}
原文地址:https://www.cnblogs.com/xidian2014/p/8728346.html