public int findPeakElement (int[] nums) {
        //分析二分条件,Mid位置,有如下几种情况
        //1.nums[i-1]<nums[i]<nums[i+1] 上坡,向右走找到当前的坡顶
        //2.nums[i-1]>nums[i]>nums[i+1] 下坡,向左走找到坡顶
        //3.nums[i-1]<nums[i]>nums[i+1] 峰值,直接返回
        //4.nums[i-1]>nums[i]<nums[i+1] 在坑里,向左向右都有坡顶,那就规定向右吧
        //综上所述:加上不可能出现折返的情况,可以二分
        //如果1.峰值返回2.nums[i]<nums[i+1]则向右3.其他向左
        if(nums==null||nums.length==0) return -1;
        int N = nums.length;
        if(N==1) return 0;
        if(N==2) return nums[0]>nums[1]?0:nums[0]==nums[1]?-1:1;
        if(nums[0]>nums[1]) return 0;
        if(nums[N-1]>nums[N-2]) return N-1;
        int left = 0,right = N-1;
        while(left<right){
            int mid = ((right-left)>>>1)+left;
            if(nums[mid]>nums[mid-1]&&nums[mid]>nums[mid+1]){
                return mid;
            }else if(nums[mid]<nums[mid+1]){
                left = mid + 1;
            }else{
                right = mid - 1;
            }
        }
        return left==right?left:-1;
    }