题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public static int index = -1;
public int findPeakElement (int[] nums) {
// write code here
int first = 0, rear = nums.length-1;
if(nums.length == 0){
return -1;
}
if(nums.length == 1){
return 0;
}
if(nums[0]>nums[1]){
return 0;
}
if(nums[nums.length-1]>nums[nums.length-2]){
return nums.length-1;
}
binarySearch(nums,1,nums.length-2);
return index;
}
public void binarySearch(int[] nums,int first,int rear){
if(first > rear || first ==0 || rear == nums.length-1){
return;
}
int mid = (first + rear) / 2;
if(nums[mid]>nums[mid-1] && nums[mid]>nums[mid+1]){
index = mid;
return;
}
binarySearch(nums,first,mid-1);
binarySearch(nums,mid+1,rear);
}
}

