查找数组中任一峰值的下标
查找数组中任一峰值的下标
- 如题所示:
- 思路
- 源代码如下:
如题所示:
峰值元素是指其值大于左右相邻值的元素。
给定一个输入数组 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) 时间复杂度的
思路
•如果中间元素比右边的元素小,意味着当前处于一个“升序”中,那么右边(不含当前元素)将会出现一个峰值
•如果中间元素比右边的元素大,意味着当前处于一个“降序”中,那么左边(包含当前元素)将会出现一个峰值
•如果中间元素等于右边的元素,那么无法减小区间(所以题目给出了nums[i]不等于nums[i+1])
使用上述判断一直减小区间,直到区间只有1个元素
•
查找数组中任一峰值的下标相关推荐
- Java二分法查找数组中某个数的下标
package dataStructures;import java.util.Scanner; /* 用二分法在一个有序数列{1,2,3,4,5,6,7,8,9,10}中查找key值, 若找到key ...
- Java 查找数组中某个数字的下标
实现功能: 例如: 在数组{15,13,27,11,55,45,23,28)中找出45的下标 结果为:5 代码如下: package come.base; public class xiabiao { ...
- 二分实现:查找数组中的峰值元素
问题引入 给定一个数组arr,其中 arr[i] != arr[i+1],找到唯一峰值元素并返回其索引 首先,定位到题干中的关键字:峰值元素 峰值元素是指 其值大于左右相邻值 的元素,是数组的一个转折 ...
- JS快速查找数组中重复项以及下标
let arr= [1,2,3,4,5,1,2]; let rep = []; arr.forEach((item,index)=>{if(arr.indexOf(item)!=index){ ...
- 快速查找数组中重复项下标
快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...
- 【Java】 查找数组中指定元素之 顺序查找 与 二分查找
今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...
- 数组中查找並返回数组_用Python查找数组中出现奇数次的那个数字
有一个数组,其中的数都是以偶数次的形式出现,只有一个数出现的次数为奇数次,要求找出这个出现次数为奇数次的数. 集合+统计 解题思路 最简单能想到的,效率不高.利用集合的特性,通过 Python 的 s ...
- 找出数组中任一重复的数字
找出数组中任一重复的数字 找出数组中任一重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重 ...
- php 查找数组相同元素,查找数组中重复的元素
本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...
最新文章
- 华为手机升级回退_华为鸿蒙OS 2.0手机开发者Beta版支持Mate 30/P40系列OTA升级
- 最新动态,电信屏蔽Godaddy部分DNS服务
- 自定义控件:视差特效
- [转]获取xml节点值和属性值(兼容ie和firefox)
- Java编程讲义之Eclipse开发工具
- 最后一周 | 微生物组-扩增子16S分析第9期(报名直播课免费参加线下2020.8)
- 深度linux_深度:图文带你走进Linux系统结构
- Python基础(12)--模块
- 【英语学习】【WOTD】chockablock 释义/词源/示例
- 矩池云安装gcc4.9和g++4.9简单教程
- 四面轻松突围!我是如何斩获高级运维开发一职的?
- python入门教程傻瓜版_大数据学习资料集--2014-12-23
- 回望2019,觅见2020
- Kylin多维分析引擎(四):Kylin Cude构建流程详解
- ReactNative 导航栏Navigator的使用及参数navigator的传递
- c语言单片机编程 实例教程,51单片机的C语言编程基础及实例教程
- java 双机热备_MySQL双机热备
- 微信小程序“发给朋友”onShareAppMessage,“分享到朋友圈”onShareTimeline,“收藏”onAddToFavorites代码
- 网页素材大宝库:15套精美的用户头像图标素材
- mysql三国人物库_一文带你使用neo4j生成三国人物社交关系图
热门文章
- mysql的limit有什么缺陷_mysql中使用limit时,explain带来的问题分析
- 怎么打开北信源加密u盘_全国首个!北信源?安存推出区块链生态环境监管平台...
- android的提示页面,android 页面加载中,友情提示界面-Fun言
- tableau地图城市数据_优阅达“优分享” | Tableau 2020.4 “地图标记层” 的多种妙用...
- mysql数据库挂科_面试命中率 90% 的点 :MySQL 锁
- mysql插10万条数据_MySQL数据库插入100w条数据要花多久?
- sqlite字段是否存在_学习廖雪峰的JAVA教程---反射(访问字段)
- Web前端如何学?Web前端学习方法分享
- 为什么你学不好Web前端?这些原因你需了解
- matlab制作以太网数据接收上位机_Python制作串口通讯上位机