当前位置: 首页 > 图灵资讯 > 技术篇> #yyds干货盘点# LeetCode程序员面试金典:寻找峰值

#yyds干货盘点# LeetCode程序员面试金典:寻找峰值

来源:图灵教育
时间:2023-05-19 09:08:28

1.简述:

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下返回 任何峰值 位置可以。

可以假设nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度 O(log n) 解决这个问题的算法。

示例 1:

输入:nums = [1,2,3,1]

输出:2

解释:3 它是一个峰值元素,你的函数应该返回其索引 2。

示例2:

输入:nums = [1,2,1,3,6,4]

输出:1 或 5

解释:您的函数可以返回索引 1.其峰值元素为 2;

或者返回索引 5, 峰值元素为 6。

2.实现代码:

class Solution {    public int findPeakElement(int[] nums) {        int idx = 0;        for (int i = 1; i < nums.length; ++i) {            if (nums[i] > nums[idx]) {                idx = i;            }        }        return idx;    }}