思路:
二分查找依旧不熟练
public class Solution {
public int findPeakElement(int[] nums) {
int n=nums.length;
if(n==1)
{
return 0;
}
int leftIndex=0;
int rightIndex=nums.length-1;
int middle;
while(leftIndex<rightIndex)
{
middle=(leftIndex+rightIndex)/2;
if(middle-1<0)
{
if(nums[middle]>nums[middle+1])
{
return middle;
}
else
{
return middle+1;
}
}
else if(middle+1>=n)
{
if(nums[middle]>nums[middle-1])
{
return middle;
}
else
{
return middle-1;
}
}
if(nums[middle-1]<nums[middle]&&nums[middle]>nums[middle+1])
{
return middle;
}
if(nums[middle-1]<nums[middle])
{
leftIndex=middle+1;
continue;
}
else if(nums[middle]>nums[middle+1])
{
rightIndex=middle-1;
continue;
}
else
{
leftIndex=middle+1;
}
}
return leftIndex;
}
}