题目的链接在这里:https://leetcode-cn.com/problems/find-peak-element/
题目大意
峰值元素是指其值严格大于左右相邻值的元素。
给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。
你可以假设 nums[-1] = nums[n] = -∞ 。
你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
一、示意图

二、解题思路
正常判断
正常判断
代码如下:
class Solution {
public int findPeakElement(int[] nums) {
//找 严格大于 左右相邻的元素
//先进行边界判断
if(nums.length==1){
return 0;
}
//直接暴力
for(int i=0;i<nums.length;i++){
if(i==0){
//先是边界的两个值
if(nums[0]>-1&&nums[0]>nums[1]){
return 0;
}
}
//然后是右边界
else if(i==nums.length-1){
if(nums[nums.length-1]>nums[nums.length-2]){
return nums.length-1;
}
}
//那就开始遍历
else if(nums[i]>nums[i-1]&&nums[i]>nums[i+1]){
return i;
}
}
return 0;
}
}

324

被折叠的 条评论
为什么被折叠?



