using System;
using System.Collections.Generic;
class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int findPeakElement(List<int> nums) {
// write code here
if (nums == null || nums.Count == 0)
return -1;
if (nums.Count == 1)
return 0;
return ZBCZ(0, nums.Count - 1, nums);
}
public int ZBCZ(int nL, int nR, List<int> nums) {
if (nL > nR)
return -1;
int nM = (nL + nR) / 2;
int nML = nM - 1 >= 0 ? nums[nM - 1] : int.MinValue;
int nMR = nM + 1 <= nums.Count - 1 ? nums[nM + 1] : int.MinValue;
if (nums[nM] > nML && nums[nM] > nMR)
return nM;
int nLR = ZBCZ(nL, nM - 1, nums);
if (nLR >= 0)
return nLR;
int nRR = ZBCZ(nM + 1, nR, nums);
if (nRR >= 0)
return nRR;
else
return -1;
}
}