1.题目描述
峰值元素是指其值严格大于左右相邻值的元素。
给你一个整数数组 nums
,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。
你可以假设 nums[-1] = nums[n] = -∞
。
你必须实现时间复杂度为 O(log n)
的算法来解决此问题。
2.样例描述
3.思路描述
将第一个元素的索引存储到遍历count,从数组第二个元素开始遍历,若count元素小于当前遍历元素,则count存储该元素,以此类推,直到找出峰值元素。
4.代码展示
class Solution {
public int findPeakElement(int[] nums) {
int count = 0;//用于暂时存储当前位置的索引
for(int i=1;i<nums.length;i++){//循环遍历整个数组,从数组第二个元素开始
if(nums[count] < nums[i]){//如果当前位置小于下一个元素
count = i;//当前元素指向下一个元素
}
}
return count;
}
}