64,654
社区成员
发帖
与我相关
我的任务
分享
int findPeakElement(vector<int>& nums) {
if(nums.size()==1||nums[0]>nums[1])
return 0;
int a = 0, b = nums.size()-1;
int mid = a + (b - a) / 2;
while(a < b)
{
if(nums[mid] > nums[mid-1] && nums[mid] > nums[mid+1])
return mid;
else if(nums[mid] < nums[mid-1])
b = mid;
else
a = mid+1;
mid = a + (b - a) / 2;
}
if(a == b && nums[a] > nums[a-1])
return a;
}
public class Solution {
public int findPeakElement(int[] nums) {
int i=0, j=nums.length-1;
while (i<j) {
int m = (i+j)/2;
if (nums[m] > nums[m+1]) j=m; else i=m+1;
}
return i;
}
}