题解 | #寻找峰值#
寻找峰值
https://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76
int findPeakElement(int* nums, int numsLen ) {
// write code here
if(numsLen == 1) return 0;
int low = 0;
int high = numsLen - 1;
while(low < high){
//mid在中点
int mid = (low + high) / 2;
//看中间值在不在上坡
//下坡往右边找,上坡往左边找
//关键是收缩多少
//low = mid/mid+1, high = mid/mid-1
//往左收缩时候需要考虑,mid可能就是那个峰值
if(nums[mid] > nums[mid+1]){
high = mid;
}else{
low = mid + 1;
}
}
return low;
}
