这道题主要是题意的理解,题中“你可以假设 nums[-1] = nums[n] = -∞
。”这句话暗示如果num[i] <num[i+1],那么峰值一定在i+1到数组末尾存在。
int findPeakElement(vector<int>& nums) {
int l = 0,r = nums.size() - 1;
while(l < r){
int mid = (l + r) >> 1;
if(nums[mid] < nums[mid+1])
l = mid + 1;
else
r = mid;
}
return l;
}