/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param numsLen int nums数组长度
* @return int整型
*/
int findPeakElement(int* nums, int numsLen ) {
// write code here
if (numsLen == 1) { // 只有一个元素,那么它就是峰值
return 0;
}
// 单边峰处理,只需要检测左端和右端即可
if (nums[numsLen-1] > nums[numsLen-2]) {
return numsLen-1;
}
if (nums[0] > nums[1]) {
return 0;
}
if (numsLen == 2 && nums[0] == nums[1] ) {
return -1;
}
for (int i = 0; i < numsLen - 3; i++) {
if (nums[i]<nums[i+1] && nums[i+1]>nums[i+2]) {
return i+1;
}
}
return -1;
}