难度:中等
解题思路:第一个数比第二个大一定是峰值,最后一个比前一个大,一定是峰值,其他的数字就是比两边大的是峰值,时间复杂度O(n-1)代码如下:
class Solution {
public int findPeakElement(int[] nums) {
if (nums.length == 1){
return 0;
}
if (nums.length == 2){
if (nums[0]>nums[1]){
return 0;
}else return 1;
}else if (nums[0]>nums[1]){
return 0;
}
for (int i = 1; i < nums.length; i++) {
if (i == nums.length-1 && nums[i] > nums[i-1]){
return i;
}
if (nums[i]>nums[i-1]&&nums[i]>nums[i+1]){
return i;
}
}
return 0;
}
}