#4631. 寻找峰值

寻找峰值

题目描述

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

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

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

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

数组下标从0开始。

输入格式

第一行一个正整数 nn

第二行 nn 个空格隔开的整数表示数组 nums 的各个元素。

输出格式

一行一个整数表示答案,数组下标从0开始。

示例 1:

4
1 2 3 1
2

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

示例 2:

7
1 2 1 3 5 6 4
1

解释:你的函数可以返回索引 1,其峰值元素为 2;   或者返回索引 5, 其峰值元素为 6。

提示:

  • 1<=n<=1061 <= n <= 10^6
  • 109<=nums[i]<=1091-10^{9} <= nums[i] <= 10^{9} - 1
  • 对于所有有效的 ii 都有 nums[i]!=nums[i+1]nums[i] != nums[i + 1]

source:

162. 寻找峰值 - 力扣(LeetCode)

}