leetcode162. 寻找峰值 变种二分见过吗
峰值元素是指其值大于左右相邻值的元素。
给定一个输入数组 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. 寻找峰值 变种二分见过吗相关推荐
- LeetCode 162. 寻找峰值(二分查找)
1. 题目 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一 ...
- Leetcode--162. 寻找峰值
峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位 ...
- leetcode162. 寻找峰值(二分法)
峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位 ...
- LeetCode琅琊榜第十二层-寻找峰值(爬坡算法)
LeetCode162.寻找峰值 难度:中等 博主空间与往期力扣 题目链接 目录 作者原始思路 求最大值法(官方解法一) 题目分析 算法思想 代码实现 代码分析: 官方解法 爬坡算法(方法二) 算法 ...
- 寻找峰值(局部最大、局部最小)——二分查找
寻找峰值 也就是局部最大,可以采用二分法来实现.当然局部最小也一样. 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况 ...
- java 寻找峰值峰谷_Java实现 LeetCode 162 寻找峰值
162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返 ...
- leetcode 寻找峰值
162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可. 你可以假设 ...
- python寻峰,[LeetCode][Python]162. 寻找峰值
[LeetCode][Python]162. 寻找峰值 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数 ...
- 【题解】P1419 寻找段落(二分+单调队列)难度⭐⭐⭐★
P1419 寻找段落 首先二分答案,即:二分最大平均值. 我们将a全部减去mid,问题转化为判断是否存在一个长度在s~t范围内的区间它的和为正,如果有说明还有更大的平均值. 用前缀和和单调队列维护. ...
最新文章
- cglib代理的使用
- 位bit、字节byte、kb、mb
- 调用非.net系统的Webservice的探索 ( 三 ) -WCF
- 面向对象 - 1.面向过程/2.面向对象/3.如何使用类/4.__init__方法/5.属性查找/6.补充知识/7.可扩展性高...
- 利用matlab程序分别设计一正弦型信号_ARM Mbed数字信号处理
- centOS目录结构详细版
- 华为达芬奇架构到底好在哪里?
- 用Windows Live Writer在博客园发布Post
- PHP输出100以内的质数(包括普通写法和数组形式输出)
- java解压服务器文件夹,java解压7z文件
- 湖北省襄阳市谷歌高清卫星地图下载
- 如何快速下载百度网盘大文件
- 设置电脑的背景颜色为保护色
- 红外线体温计详细制作方案
- 微信朋友验证消息是什么来源_微信好友来源怎么改?来源朋友验证消息是什么意思?...
- 开放下载 | 2022阿里妈妈技术年刊来啦!
- 什么是马甲包?有什么作用?
- 贝壳后台开发面经(22 届春招)
- 提高影响力:职权+威信
- 【Java每日一题】20161012
热门文章
- java webservice用户验证_使用java webservice的.net4.0 web app需要Usernametoken身份验证
- ubuntu开机出现错误“Error found when loading /root/.profile”解决
- asterisk1.8 Makefile分析 (2)
- 网络编程模型综述 之 多线程模型
- WINCE驱动程序快速入门
- mac远程redis_Linux:使用Mac远程(局域网内)访问Ubuntu主机上的Redis服务
- 基于C#的AE+IDL二次桌面端程序开发
- mysql 关联更新_跳出初学MySQL知识的原理整理(一)
- 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测
- python选择表单_如何使用Python在表单中选择选项?