lintcode_75.寻找峰值
你给出一个整数数组(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.寻找峰值相关推荐
- 寻找峰值(局部最大、局部最小)——二分查找
寻找峰值 也就是局部最大,可以采用二分法来实现.当然局部最小也一样. 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况 ...
- 牛客题霸 [ 寻找峰值] C++题解/答案
牛客题霸 [ 寻找峰值] C++题解/答案 题目描述 山峰元素是指其值大于或等于左右相邻值的元素.给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰.找到索引最大的那个山峰元素并 ...
- Matlab-中寻找峰值函数,波峰波谷
转载注明出处:http://write.blog.csdn.net/postlist 方法一: findpeaks 寻找峰值函数 pks = findpeaks(data) [pks,locs] = ...
- 11 寻找峰值(Find Peak Element)
文章目录 1 题目 2 描述 3 思路 3.1 图解 3.2 时间复杂度 3.3 空间复杂度 4 源码 1 题目 寻找峰值(Find Peak Element) lintcode:题号--75,难 ...
- 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],找到峰值元素并返回其索引. 数 ...
- 如何寻找峰值及其位置(matlab)
(1)创建一个由钟形曲线和组成的信号.指定每条曲线的位置.高度和宽度: x = linspace(0,1,1000);Pos = [1 2 3 5 7 8]/10; Hgt = [3 4 4 2 2 ...
- matlab:寻找峰值(波峰,波谷)
原文出处:http://write.blog.csdn.net/postlist http://blog.csdn.net/yf210yf/article/details/7453142 ------ ...
最新文章
- 国内较强的NLP高校实验室有哪些?
- linux每天进步一点点-7月4.5.6日
- leetcode C++ 6. Z 字形变换 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。
- Delphi中TWebBrowser中注入Js
- C和指针之函数之递归实现厄密多项式
- windows平台下vlc编译
- 数据定义语言DDL之数据库操作
- Google发布Puppeteer 1.0
- 客户端向hdfs读写数据流程
- CTRL+ALT快捷键汇总
- 程序设计语言的基本概念
- HSRP在企业网中的应用(CISCO小凡模拟器)
- 数据质量评价体系(附思维导图)
- 微信小程序添加激励式广告
- 亚信科技2019Java笔试题_2019亚信科技(asiainfo)面试经验(产品助理,后端工程师等)...
- [源码解析]ESPnet脚本源码解析-aishell-asr.sh
- hdu Find Integer (6441)(大费马定理)
- 分布式网络爬虫框架Cola介绍
- SetChatRoomDesc 设置群公告
- WPF运行报错System.Windows.Markup.XamlParseException:““在“System.Windows.StaticResourceExtension”
热门文章
- 系统管理员在企业中的职业定位及发展方向 连载(一)
- Android SqliteManager 源码
- mysql8允许外网访问(转载+整理)
- hive集群部署以及beeline和hive
- No report created. Execute hbck_chore_run in hbase shell to generate a new sub-report.
- sublime自定义主题-修改行号的颜色
- pandas:apply(),applymap(),map()
- linux cvs服务,Linux环境下轻松搭建CVS服务器
- idea 关于高亮显示与选中字符串相同的内容
- 说说基于网络的五种IO模型