题目链接:https://leetcode-cn.com/problems/B1IidL/
题目如下:
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
//注:时间复杂度为O(log n),第一时间想到二分
/**
* 找递增和递减的交换点,可以用二分查找的思想去做
* 1)若mid周围是递减,那么山峰只可能在前
* 2)若mid周围是递增,那么山峰只可能在后
*/
int size=arr.size();
int low=0,high=size-1;
while(low<high){
int mid=(low+high+1)>>1;
if(arr[mid]>arr[mid-1]) low=mid;
else high=mid-1;
}
return low;//arr[low];
}
};