class Solution {
public:
int peakIndexInMountainArray(vector<int>& a) {
int l = 0, r = a.size()-1;
while(l<=r){
int m = l+(r-l)/2;
if(a[m]>a[m-1] && a[m]>a[m+1]){
return m;
}
if(a[l]<a[m] && a[m]<a[m+1]){
l = m;
}else{
r = m;
}
}
return -1;
}
};
另种风格的:
class Solution {
public:
int peakIndexInMountainArray(vector<int>& a) {
int l = 0, r = a.size()-1;
while(l<r){
int m = l+(r-l)/2;
if(a[m]<a[m+1]){
l = m+1;
}else{
r = m;
}
}
return l;
}
};