题目:

算法思想:普通的遍历求解时间复杂度较高,所以采用二分比较快,当一个值比它左右两边都大的时候就是峰顶。
代码:
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;
}
本文介绍了一种高效查找山形数组中峰顶元素的方法,利用二分法实现快速定位,避免了传统遍历的高时间复杂度。通过具体代码示例,详细解释了算法的实现过程。
415

被折叠的 条评论
为什么被折叠?



