/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型 */ int findPeakElement(int* nums, int numsLen ) { // write code here int i = 0; int digit = 0;//存峰值索引 int max = nums[0];//假设数组最大值为第一个元素 if(numsLen == 1) { return 0; } else if(numsLen == 2||numsLen == 3) { for(i = 1;i<numsLen;i++) { if(max<nums[i]) { max = nums[i]; digit = i; } } return digit; } else { //找到数组中的最大值 for (i = 0; i < numsLen; i++) { if (nums[i] > max) { max = nums[i]; digit = i; } } //如果最大值满足以下条件则返回最大值索引 if(digit == 0 || digit == numsLen - 1||2*max>nums[digit+1]+nums[digit-1]) { goto end; } //反之将最大值修改,寻找下一个最大值 nums[digit]= 0; } end: return digit; }