/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @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;    
}