你给出一个整数数组(size为n),其具有以下特点:

  • 相邻位置的数字是不同的
  • A[0] < A[1] 并且 A[n - 2] > A[n - 1]

假定P是峰值的位置则满足A[P] > A[P-1]A[P] > A[P+1],返回数组中任意一个峰值的位置。

样例

给出数组[1, 2, 1, 3, 4, 5, 7, 6]返回1, 即数值 2 所在位置, 或者6, 即数值 7 所在位置.

题意实际应该是找任意一个极大值

class Solution:"""@param: A: An integers array.@return: return any of peek positions."""def findPeak(self, A):# write your code hereif len(A)<2:return Afor i in range(1,len(A)-1):if (A[i+1]-A[i]) < 0:return i

时间复杂度O(n),Time Limit Exceeded

考虑二分法,九章参考:

class Solution:#@param A: An integers list.#@return: return any of peek positions.def findPeak(self, A):# write your code herestart, end = 1, len(A) - 2while start + 1 <  end:mid = (start + end) / 2if A[mid] < A[mid - 1]:end = midelif A[mid] < A[mid + 1]:start = midelse:end = mid #直接return mid就行,不用再找了if A[start] < A[end]:return endelse:return start

一开始觉得不对,仔细审题发现还有约束

  • A[0] < A[1] 并且 A[n - 2] > A[n - 1]

只用考虑中间点局部范围则可以找到某峰值的区间。

转载于:https://www.cnblogs.com/zhangli-ncu/p/8032034.html

lintcode_75.寻找峰值相关推荐

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

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

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

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

  3. Matlab-中寻找峰值函数,波峰波谷

    转载注明出处:http://write.blog.csdn.net/postlist 方法一: findpeaks 寻找峰值函数 pks = findpeaks(data) [pks,locs] = ...

  4. 11 寻找峰值(Find Peak Element)

    文章目录 1 题目 2 描述 3 思路 3.1 图解 3.2 时间复杂度 3.3 空间复杂度 4 源码 1 题目   寻找峰值(Find Peak Element) lintcode:题号--75,难 ...

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

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

  6. leetcode 寻找峰值

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

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

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

  8. 如何寻找峰值及其位置(matlab)

    (1)创建一个由钟形曲线和组成的信号.指定每条曲线的位置.高度和宽度: x = linspace(0,1,1000);Pos = [1 2 3 5 7 8]/10; Hgt = [3 4 4 2 2 ...

  9. matlab:寻找峰值(波峰,波谷)

    原文出处:http://write.blog.csdn.net/postlist http://blog.csdn.net/yf210yf/article/details/7453142 ------ ...

最新文章

  1. 国内较强的NLP高校实验室有哪些?
  2. linux每天进步一点点-7月4.5.6日
  3. leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
  4. Delphi中TWebBrowser中注入Js
  5. C和指针之函数之递归实现厄密多项式
  6. windows平台下vlc编译
  7. 数据定义语言DDL之数据库操作
  8. Google发布Puppeteer 1.0
  9. 客户端向hdfs读写数据流程
  10. CTRL+ALT快捷键汇总
  11. 程序设计语言的基本概念
  12. HSRP在企业网中的应用(CISCO小凡模拟器)
  13. 数据质量评价体系(附思维导图)
  14. 微信小程序添加激励式广告
  15. 亚信科技2019Java笔试题_2019亚信科技(asiainfo)面试经验(产品助理,后端工程师等)...
  16. [源码解析]ESPnet脚本源码解析-aishell-asr.sh
  17. hdu Find Integer (6441)(大费马定理)
  18. 分布式网络爬虫框架Cola介绍
  19. SetChatRoomDesc 设置群公告
  20. WPF运行报错System.Windows.Markup.XamlParseException:““在“System.Windows.StaticResourceExtension”

热门文章

  1. 系统管理员在企业中的职业定位及发展方向 连载(一)
  2. Android SqliteManager 源码
  3. mysql8允许外网访问(转载+整理)
  4. hive集群部署以及beeline和hive
  5. No report created. Execute hbck_chore_run in hbase shell to generate a new sub-report.
  6. sublime自定义主题-修改行号的颜色
  7. pandas:apply(),applymap(),map()
  8. linux cvs服务,Linux环境下轻松搭建CVS服务器
  9. idea 关于高亮显示与选中字符串相同的内容
  10. 说说基于网络的五种IO模型