鏈接:852. 山脈數組的峰頂索引 - 力扣(LeetCode)
題解:
事實證明,二分查找不局限于有序數組,非有序的數組也同樣適用
二分查找主要思想在于二段性,即將數組分為兩段。本體就可以將數組分為arr[i]>=arr[i-1]部分和arr[i]<arr[i-1]的兩部分,我們實際上查找的是arr[i]>=arr[i-1]部分的最右端點,因此本題使用二分查找的右端點版本。
class Solution {
public:int peakIndexInMountainArray(vector<int>& arr) {int left=0;int right=arr.size()-1;int mid=left+(right-left+1)/2;while(left<right){if(arr[mid]<arr[mid-1]){right=mid-1;mid=left+(right-left+1)/2;}else{left=mid;mid=left+(right-left+1)/2;}}return left;}
};