介绍

峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 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) 时间复杂度的。

源代码

class Solution {
public:int findPeakElement(vector<int>& nums) {int left=0,right=nums.size()-1;int middle=(left+right)/2;while(left<=right){if(middle==left){if(nums[right]>nums[left]){return right;}else{return left;}}if(nums[middle]>nums[middle+1]){right=middle;}if(nums[middle]<nums[middle+1]){left=middle+1;}middle = left+(right-left)/2;}}
};

LeetCode之寻找峰值相关推荐

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

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

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

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

  3. LeetCode 162. 寻找峰值

    为什么二分查找大的那一半一定会有峰值呢?(即nums[mid]<nums[mid+1]时,mid+1~N一定存在峰值) 我的理解是,首先已知 nums[mid+1]>nums[mid],那 ...

  4. Leetcode 162. 寻找峰值 解题思路及C++实现

    解题思路: 这道题应该归为简单,只要找到第一个降序的值就可以了. class Solution { public:int findPeakElement(vector<int>& ...

  5. leetcode 寻找峰值

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

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

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

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

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

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

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

  9. 牛客题霸 [ 寻找峰值] C++题解/答案

    牛客题霸 [ 寻找峰值] C++题解/答案 题目描述 山峰元素是指其值大于或等于左右相邻值的元素.给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰.找到索引最大的那个山峰元素并 ...

  10. [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数

    [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数 1.题目 题目链接 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组 ...

最新文章

  1. 如何实现ios屏幕的横竖屏自适应
  2. 【Swin Transformer Block】的整体流程如下:
  3. 天津大学计算机专业怎么样,请问天大计算机专业的研究生怎么样啊?
  4. 数据库笔记03:管理数据表中的数据
  5. 分布式缓存产品Redis和memcached比较区别(图)
  6. 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)
  7. js实现的笛卡尔乘积-商品发布
  8. ASP.NET CORE的H5上传
  9. 2021年计算机网络工程师真题,2021年计算机四级网络工程师题库完整版完整答案.doc...
  10. 计算机无法安装64位操作系统,彻底根除“无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:”的问题-网络教程与技术 -亦是美网络...
  11. c51单片机时钟程序汇编语言,51单片机时钟汇编程序
  12. Unity Burst 用户指南
  13. 华为电脑怎么把虚拟化打开_【解决方案】华为虚拟化解决方案
  14. Hark的数据结构与算法练习之珠排序
  15. 微信小程序wx.downloadFile下载图片(甄姬)出现格式.unknown的bug
  16. 深入理解Linux虚拟内存管理(二)
  17. 【自然语言处理】【多模态】BLIP:面向统一视觉语言理解和生成的自举语言图像预训练
  18. Typora+PicGo+阿里云OSS实现云笔记
  19. 第二届全国智能制造(中国制造2025)创新创业大赛华南人工智能专项赛决赛圆满举办
  20. 关于小梅哥ADC128S022驱动设计的思考

热门文章

  1. 自学如何去学习jQuery
  2. 初探12306售票算法(一)- 理论
  3. 如何在ogre游戏界面添加自己的信息,比如显示某变量的值
  4. 使用mybaits遇见有大写的sql语句错误的bug分析
  5. dom4j 解析xml文件demo
  6. 05. Know what functions C++ silently writes and calls
  7. VS2015 error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型
  8. Java之String,StringBuffer,StringBuilder比较
  9. mysql压测宕机_MySQL压测时Linux中断异常飚高,原来是因为...
  10. jdbc封装工具类代码_【百战程序员从开始到植发】之JDBC