条件判断过于凌乱,待修补。
<pre name="code" class="java">public class Solution {
public int findPeakElement(int[] nums) {
if (nums.length < 1) {
return -1;
}
if (nums.length == 1) {
return 0;
}
int left = 0;
int right = nums.length - 1;
int mid = 0;
while (true) {
mid = left + (right - left) / 2;
if (mid == 0 && nums[0] > nums[1]) {
return mid;
} else if (mid == nums.length - 1 && nums[mid] > nums[mid - 1]) {
return mid;
} else {
if (mid > 0 && nums[mid] > nums[mid - 1] && nums[mid] > nums[mid + 1]) {
return mid;
} else if (mid > 0 && nums[mid - 1] > nums[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
}
}
}