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

给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。

数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。

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

示例 1:

输入: nums = [1,2,3,1]
输出: 2
解释: 3 是峰值元素,你的函数应该返回其索引 2。
示例 2:

输入: nums = [1,2,1,3,5,6,4]
输出: 1 或 5 
解释: 你的函数可以返回索引 1,其峰值元素为 2;
     或者返回索引 5, 其峰值元素为 6。
说明:

你的解法应该是 O(logN) 时间复杂度的。

思路:

二分,具体见代码。(一直保持夹逼的趋势,搜出一个数字即可)

public class Solution {public int findPeakElement(int[] nums) {int l = 0, r = nums.length - 1;while (l < r) {int mid = (l + r) / 2;if (nums[mid] > nums[mid + 1])r = mid;elsel = mid + 1;}return l;}
}

leetcode162. 寻找峰值 变种二分见过吗相关推荐

  1. LeetCode 162. 寻找峰值(二分查找)

    1. 题目 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一 ...

  2. Leetcode--162. 寻找峰值

    峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位 ...

  3. leetcode162. 寻找峰值(二分法)

    峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位 ...

  4. LeetCode琅琊榜第十二层-寻找峰值(爬坡算法)

    LeetCode162.寻找峰值 难度:中等 博主空间与往期力扣  题目链接 目录 作者原始思路 求最大值法(官方解法一) 题目分析 算法思想 代码实现 代码分析: 官方解法 爬坡算法(方法二) 算法 ...

  5. 寻找峰值(局部最大、局部最小)——二分查找

    寻找峰值 也就是局部最大,可以采用二分法来实现.当然局部最小也一样. 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况 ...

  6. java 寻找峰值峰谷_Java实现 LeetCode 162 寻找峰值

    162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返 ...

  7. leetcode 寻找峰值

    162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可. 你可以假设 ...

  8. python寻峰,[LeetCode][Python]162. 寻找峰值

    [LeetCode][Python]162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数 ...

  9. 【题解】P1419 寻找段落(二分+单调队列)难度⭐⭐⭐★

    P1419 寻找段落 首先二分答案,即:二分最大平均值. 我们将a全部减去mid,问题转化为判断是否存在一个长度在s~t范围内的区间它的和为正,如果有说明还有更大的平均值. 用前缀和和单调队列维护. ...

最新文章

  1. cglib代理的使用
  2. 位bit、字节byte、kb、mb
  3. 调用非.net系统的Webservice的探索 ( 三 ) -WCF
  4. 面向对象 - 1.面向过程/2.面向对象/3.如何使用类/4.__init__方法/5.属性查找/6.补充知识/7.可扩展性高...
  5. 利用matlab程序分别设计一正弦型信号_ARM Mbed数字信号处理
  6. centOS目录结构详细版
  7. 华为达芬奇架构到底好在哪里?
  8. 用Windows Live Writer在博客园发布Post
  9. PHP输出100以内的质数(包括普通写法和数组形式输出)
  10. java解压服务器文件夹,java解压7z文件
  11. 湖北省襄阳市谷歌高清卫星地图下载
  12. 如何快速下载百度网盘大文件
  13. 设置电脑的背景颜色为保护色
  14. 红外线体温计详细制作方案
  15. 微信朋友验证消息是什么来源_微信好友来源怎么改?来源朋友验证消息是什么意思?...
  16. 开放下载 | 2022阿里妈妈技术年刊来啦!
  17. 什么是马甲包?有什么作用?
  18. 贝壳后台开发面经(22 届春招)
  19. 提高影响力:职权+威信
  20. 【Java每日一题】20161012

热门文章

  1. java webservice用户验证_使用java webservice的.net4.0 web app需要Usernametoken身份验证
  2. ubuntu开机出现错误“Error found when loading /root/.profile”解决
  3. asterisk1.8 Makefile分析 (2)
  4. 网络编程模型综述 之 多线程模型
  5. WINCE驱动程序快速入门
  6. mac远程redis_Linux:使用Mac远程(局域网内)访问Ubuntu主机上的Redis服务
  7. 基于C#的AE+IDL二次桌面端程序开发
  8. mysql 关联更新_跳出初学MySQL知识的原理整理(一)
  9. 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测
  10. python选择表单_如何使用Python在表单中选择选项?