题目:
算法思想:普通的遍历求解时间复杂度较高,所以采用二分比较快,当一个值比它左右两边都大的时候就是峰顶。
代码:
int peakIndexInMountainArray(vector<int>& A) {
//二分
int a = 0,b = A.size()-1;
while(a <= b)
{
int mid = a + (b-a)/2;
if(A[mid] > A[mid-1] && A[mid] > A[mid+1])
return mid;
else if(A[mid] > A[mid-1] && A[mid] < A[mid+1])
a = mid+1;
else
b = mid-1;
}
return 0;
}