import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int findPeakElement (int[] nums) {
// write code here
int len = nums.length; //获取数组的长度
//特殊值处理,如果数组长度为1,则第一个元素是峰值
if(len == 1){
return 0;
}
//如果数组长度为1,还有两个比较特殊的元素:第一个和最后一个,只要第一个元素比第二个元素大,即是峰值;
if(nums[0] > nums[1]){
return 0;
}
//只要倒数第一个元素比倒数第二个元素大,即是峰值;
if(nums[len-1] > nums[len-2]){
return len-1;
}
//对与数组中的第二个元素到倒数第二个元素,如果大于左右两个元素,也是峰值
for(int i=1;i<len-1;i++){
if(nums[i] > nums[i-1] && nums[i] > nums[i+1]){
return i;
}
}
return -1;
}
}
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int findPeakElement (int[] nums) {
// write code here
int len = nums.length; //获取数组的长度
//特殊值处理,如果数组长度为1,则第一个元素是峰值
if(len == 1){
return 0;
}
//如果数组长度为1,还有两个比较特殊的元素:第一个和最后一个,只要第一个元素比第二个元素大,即是峰值;
if(nums[0] > nums[1]){
return 0;
}
//只要倒数第一个元素比倒数第二个元素大,即是峰值;
if(nums[len-1] > nums[len-2]){
return len-1;
}
//对与数组中的第二个元素到倒数第二个元素,如果大于左右两个元素,也是峰值
for(int i=1;i<len-1;i++){
if(nums[i] > nums[i-1] && nums[i] > nums[i+1]){
return i;
}
}
return -1;
}
}