python 求最大值实例_Python 求数组局部最大值的实例
求数组局部最大值
给定一个无重复元素的数组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 求数组局部最大值的实例相关推荐
- python生成每个月最后一天_python 求下个月的最后一天
[1]根据当前月求上个月.下个月的最后一天 (1)求当前月最后一天 (2)求前一个月的最后一天 (3)求下一个月的最后一天 学习示例与应用实例,代码如下: #!/usr/bin/python3 #-* ...
- python判断数字位数_python求数字位数的方法
第一种: 利用str()函数将数字转化成字符串,再利用len()函数判断位长. 1 a=Int(raw_input("the number you want type in:") ...
- python求众数程序_python求众数问题实例
本文实例讲述了python求众数问题的方法,是一个比较典型的应用.分享给大家供大家参考.具体如下: 问题描述: 多重集中重数最大的元素称为众数...就是一个可以有重复元素的集合,在这个集合中重复的次数 ...
- python求数字平均值_python 求10个数的平均数实例
python 求10个数的平均数实例 更新时间:2019年12月16日 18:00:02 作者:qq_20076527 今天小编就为大家分享一篇python 求10个数的平均数实例,具有很好的参考价值 ...
- python求最大值最小值_Python求可变参数的最大值最小值以及参数个数
求可变参数的最大值最小值以及参数个数 简介: 首先要做这个题,我们要使用函数来解决,这就要求我们要掌握函数的定义以及函数的调用.函数是一段具有特定功能的.可重用的,用来实现单一,或相关联功能的代码段. ...
- python求交点坐标_Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点 代码如下: # -*- coding: utf-8 -*- import math import numpy as np def insec(p1,r1,p2,r2): x = p1 ...
- python计算多边形面积_Python求凸包及多边形面积教程
一般有两种算法来计算平面上给定n个点的凸包:Graham扫描法(Graham's scan),时间复杂度为O(nlgn):Jarvis步进法(Jarvis march),时间复杂度为O(nh),其中h ...
- python牛顿迭代法求根例题_python求根算法
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! scipy官网:https:www.scipy.org这个库是python科学计 ...
- python中最小公倍数函数_python求最大公约数和最小公倍数的简单方法
python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...
最新文章
- Go圣经-学习笔记之defer和异常处理
- PowerShell-Exchange:统计每天邮件收发
- 不能执行已释放 script 的代码_[漏洞预警]CVE20190708远程桌面代码执行漏洞利用工具已放出...
- 工作44:阅读代码1 dictionary
- 用友php漏洞,用友CRM注入漏洞(无需登录通杀所有版本)
- jquery-nodejs-安装与测试
- java 集合操作工具包_java之操作集合的工具类--Collections
- hdu 1800 Flying to the Mars
- c语言计算结果为1. inf0000,C语言复习题及答案老师给的
- MySQL绿色版mysql-5.7.17-winx64简洁安装教程
- 有窗体的闭合导线计算程序(C#)
- c语言 字符串转浮点型函数
- 压铸件孔隙率的检测与等级测定
- google服务框架
- C# 使用NPIO 导出导出EXECL
- 用CSS实现立方体360度旋转
- HTML5期末大作业:网页制作代码 网站设计——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板
- 两个摄像头合成一路_两个摄像头怎样用一个显示屏
- 互联网创新创业大赛优秀范例_第五十九期创业沙龙——“互联网+”大学生创新创业大赛实践案例...
- VK2C22A替代16C22,是段码低功耗LCD液晶显示驱动芯片/段码液晶驱动IC,44SEG*4COM/40*4,高抗干扰.稳定性强