162. 寻找峰值

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

给定一个输入数组 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(int[] nums) {

int left = 0;

int right = nums.length - 1;

int mid = 0;

while(left < right){

mid = left + (right - left)/2;

if(mid == 0 && nums[mid] > nums[mid+1] ||

mid == nums.length - 1 && nums[mid] > nums[mid-1] ||

nums[mid] > nums[mid+1] && nums[mid] > nums[mid-1]){

return mid;

}

if(nums[mid] > nums[mid+1]){ // 左边肯定有峰值

right = mid;

}else{

left = mid + 1;

}

}

return left;

}

}

java 寻找峰值峰谷_Java实现 LeetCode 162 寻找峰值相关推荐

  1. java 寻找峰值峰谷_java – 时间序列中的峰值检测

    你似乎只是寻找斜率反转(从正到负,反之亦然).粗略的java算法可以(未测试): List points = ... //all the points in your curve List extre ...

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

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

  3. java 寻找峰值峰谷_寻找峰值

    # # 寻找最后的山峰 # @param a int整型一维数组 # @return int整型 # class Solution: def solve(self , a ): # write cod ...

  4. LeetCode 162. 寻找峰值

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

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

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

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

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

  7. 信号处理中简单实用的方法——寻找信号中的峰值和谷值

    在信号处理中,经常会需要在时间域或频率域寻找峰值和谷值.MATLAB工具箱中已有峰值检测的函数(findpeaks函数),本次将结合函数说明对峰值和谷值的检测. 如果只找一个峰值可以用max函数,而需 ...

  8. java角谷_Java:利用递归方法实现角谷定理

    问题描述: 角谷定理.输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1.经过如此有限次运算后,总可以得到自然数值1.求经过多少次可得到自然数1. 如:输入22, 输出 22 11 3 ...

  9. [算法练习及思路-程序员面试金典(Java解法)]No61.峰与谷

    题号:no61 题目名:峰与谷 原题URL:https://leetcode-cn.com/problems/peaks-and-valleys-lcci/ 题目描述 在一个整数数组中,"峰 ...

最新文章

  1. nboot通过DNW下载并运行eboot.nb0
  2. git cherry-pick
  3. 牛客题霸 NC5 二叉树根节点到叶子节点的所有路径和
  4. Qt Creator在问题窗格中显示任务列表文件
  5. 华为服务器bmc默认地址_智能数据中心和智慧园区:华为的单点突破与全局效应...
  6. js高级技巧之柯里化
  7. 【Servlet】解决org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method……
  8. python大神的成长之路_Python大神成长之路: 第三次学习记录 集合 函数 装饰 re...
  9. php checkstyle,php codebrowser未正确遵循checkstyle.xml中的路径
  10. Redis 常用配置参数
  11. SQLAlchemy create table
  12. Mysql学习总结(78)——MySQL各版本差异整理
  13. MFC应用程序框架分析
  14. day15 匿名函数及常用内置函数
  15. 树莓派命令行发送邮件
  16. Fragment学习(二): 管理Fragment和Fragment通讯
  17. ipython安装 windows_IPython安装过程 @win7 64bit
  18. ubuntu下比较好用的msn聊天工具
  19. 解决thinkpad sl410 evc windows7硬盘安装ubuntu12.04以后,windows 无线出现断开网速慢等问题
  20. JAVA毕设项目html5在线医疗系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)

热门文章

  1. Access key id should not be null or empty.
  2. 虚幻4和Unity3D应该学哪个?
  3. NginxLua实现WAF防火墙
  4. white-space:nowrap normal pre pre-wrap pre-line的区别以及pre和pre-wrap的“首行缩进“问题
  5. web编程开发_Web编程简介(Web设计和Web开发)
  6. 成都榆熙:拼多多商家都想要提高客单价,但是怎么去提高呢?
  7. 红米note94g版和红米note8Pro哪个好
  8. Eureka 没凉,别过度悲伤
  9. 通用计算机按其规模速度和功能,电脑基础知识详解
  10. rk3328摄像头监控