Open guodongxiaren opened 4 years ago
属于 #26 的子问题。 比较简单:
class Solution {
public:
int peakIndexInMountainArray(vector<int>& A) {
int left = 0, right = A.size() -1;
while (left <= right) {
int mid = (left + right) >> 1;
if (A[mid] <= A[mid+1]) {
left = mid+1;
} else if (A[mid-1] <= A[mid]){
return mid;
} else {
right = mid-1;
}
}
return -1;
}
};
我们把符合下列属性的数组 A 称作山脉:
给定一个确定为山脉的数组,返回任何满足:
A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1] 的 i 的值。
示例 1:
示例 2:
提示:
A 是如上定义的山脉