采用二分法模板,飞速搞定。
判断条件是if (nums[mid]<=nums[mid+1]),如果是就找右半边,否则左半边。最后在start和end中年找。
代码如下:
int mountainSequence(vector<int> &nums) {
if (nums.size()==0) return -1;
int start=0, end=nums.size()-1;
while (start+1 < end) {
int mid=start+(end-start)/2;
if (nums[mid]<=nums[mid+1]) {
start=mid;
} else {
end=mid;
}
}
if (nums[start]<nums[end]) return nums[end];
else return nums[start];
}