Python 求数组局部最大值的实例


Posted in Python onNovember 26, 2019

求数组局部最大值

给定一个无重复元素的数组A[0…N-1],求找到一个该数组的局部最大值。规定:在数组边界外的值无穷小。即:A[0]>A[-1],A[N-1] >A[N]。

显然,遍历一遍可以找到全局最大值,而全局最大值显然是局部最大值。

可否有更快的办法?

算法描述

使用索引left、right分别指向数组首尾。

求中点 mid = ( left + right ) / 2

A[mid]>A[mid+1],丢弃后半段:right=mid

A[mid+1]>A[mid],丢弃前半段:left=mid+1

递归直至left==right

时间复杂度为O(logN)。

Python代码

def local_maximum(li):
  if li is None:
    return
  left = 0
  right = len(li) - 1
  while left < right:
    mid = int((left + right) / 2)
    if li[mid] > li[mid + 1]:
      right = mid
    else:
      left = mid + 1
  return li[left]


if __name__ == '__main__':
  li = [1, 5, 2, 3, 4, 0]
  result = local_maximum(li)
  print(result)

输出结果:4

以上这篇Python 求数组局部最大值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用7z解压软件备份文件脚本分享
Feb 21 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
matplotlib绘制动画代码示例
Jan 02 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 Python
python实现实时视频流播放代码实例
Jan 11 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
Python 实现取多维数组第n维的前几位
Nov 26 #Python
python获取array中指定元素的示例
Nov 26 #Python
Flask之pipenv虚拟环境的实现
Nov 26 #Python
Python 根据数据模板创建shapefile的实现
Nov 26 #Python
Python实现直播推流效果
Nov 26 #Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 #Python
创建Shapefile文件并写入数据的例子
Nov 26 #Python
You might like
smarty模板引擎基础知识入门
2015/03/30 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
三个python爬虫项目实例代码
2019/12/28 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
社区八一活动方案
2014/02/03 职场文书
淘宝活动策划方案
2014/02/06 职场文书
英文请假条
2014/04/11 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers