Python 寻找局部最高点的实现

我就废话不多说了,直接上代码吧!

# 寻找局部最高点
# 输入input: 含有最高点高度的列表
# 输出output: 返回最高点的位置
# 时间复杂度: O(log(n))

def findHighSpot(input):
  iLen = len(input)
  mid = iLen//2 - 1 # Python中'/'为小数除法,'//'为地板除
  if input[mid-1] <= input[mid] >= input[mid+1]:
    return str(mid+1) # 默认返回最高点到第一个点之间的距离
  elif input[mid-1] > input[mid]:
    return findHighSpot(input[:mid//2])
  else:
    return 'mid+'+findHighSpot(input[mid//2:]) # 返回最高点距离中间点的距离

if __name__ == '__main__':
  input = [1, 2, 6, 5, 3, 7, 4]
  output = findHighSpot(input)
  print('output:', output) # output: 3

以上这篇Python 寻找局部最高点的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 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],丢弃前半段

  • Python 寻找局部最高点的实现

    我就废话不多说了,直接上代码吧! # 寻找局部最高点 # 输入input: 含有最高点高度的列表 # 输出output: 返回最高点的位置 # 时间复杂度: O(log(n)) def findHighSpot(input): iLen = len(input) mid = iLen//2 - 1 # Python中'/'为小数除法,'//'为地板除 if input[mid-1] <= input[mid] >= input[mid+1]: return str(mid+1) # 默认返回最

  • Python寻找两个有序数组的中位数实例详解

    Python寻找两个有序数组的中位数 审题: 1.找出意味着这是一个查找算法题 2.算法复杂度log级别,就是提示你是二分查找 3.二分查找实现一般为递归 (1)递归包括递归体  (2)终止条件 思路: 定理: 1.有序数组中有一半的元素小于等于数组的中位数,有一半的元素大于等于中位数(如果数组中元素个数是奇数,那么这里的一半并不是严格意义的1/2) 2.如果我们去掉其中一个数组比中位数小的k个数,再去掉另一个数组中比中位数大的k个数,得到的合并子数组的中位数和原来的中位数相同. eg:[1,2

  • python 寻找离散序列极值点的方法

    使用 scipy.signal 的 argrelextrema 函数(API),简单方便 import numpy as np import pylab as pl import matplotlib.pyplot as plt import scipy.signal as signal x=np.array([ 0, 6, 25, 20, 15, 8, 15, 6, 0, 6, 0, -5, -15, -3, 4, 10, 8, 13, 8, 10, 3, 1, 20, 7, 3, 0 ])

  • Python寻找路径和查找文件路径的示例

    Sys.path 指定用于模块搜索路径的字符串列表 也可以通过sys模块的append方法在Python环境中增加搜索路径. Sys.path.append('/usr/bin/') /usr/lib64/python2.6 python模块默认存放路径 .pyc是一种二进制文件,是由py文件经过编译后生成的文件,加载的速度有所提高,且为加密文件,有利于保密. 1:简单安全的方法,是在sys.path的某个目录下添加路径配置文件,最常见的就是在-/site-package/目录下.路径配置文件的

  • python寻找list中最大值、最小值并返回其所在位置的方法

    实例如下所示: c = [-10,-5,0,5,3,10,15,-20,25] print c.index(min(c)) # 返回最小值 print c.index(max(c)) # 返回最大值 以上这篇python寻找list中最大值.最小值并返回其所在位置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python 寻找list中最大元素对应的索引方法

    如下所示: aa = [1,2,3,4,5] aa.index(max(aa)) 如果aa是numpy数组: aa = numpy.array([1,2,3,4,5]) 先把aa转换为List,再求索引: bb = aa.tolist() bb.index(max(bb)) 以上这篇python 寻找list中最大元素对应的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python实现局部图像放大

    本文实例为大家分享了python实现局部图像放大的具体代码,供大家参考,具体内容如下 import cv2 as cv import sys if __name__ == '__main__': #读取图像并判断是否读取成功 img = cv.imread('tu.jpg') #需要放大的部分 part = img[300:400,250:350] #双线性插值法 mask = cv.resize(part, (300, 300), fx=0, fy=0, interpolation=cv.IN

  • 教你用Python寻找重复文件并删除的脚本写法

    在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样.在文件较少的情况下,该类情况还比较容易处理,最不济就是one by one的人工比较——即便如此,也很难保证你的眼神足够犀利.倘若文件很多,这岂不是个impossible mission?最近在看<Python UNIX和Linux系统管理指南>,里面就有有关“数据比较”的内容,在其基础上,结合实际整理如下. 该脚本主要包括以下模块:diskwalk,chechs

  • python寻找含有关键字文件和删除文件夹方式

    目录 寻找含有关键字文件和删除文件夹 以上为简单的关键字文件查找 在此处先要导入shutil包 python删除一个文件或文件夹 需要使用os模块 另一种方法 寻找含有关键字文件和删除文件夹 我们往往在操作文件时,会不知道文件具体的路径. 一般如果只是处理一个文件的话我们可以在文件所在的文件夹下运行python脚本,默认为当前脚本. 而如果一个文件有多层目录结构时,往往这种方法很有局限性. 例如在处理mesaage文件时,先要解压一个压缩文件,其中有两个文件夹,而每个文件夹下的第四层目录中都有一

  • python 寻找优化使成本函数最小的最优解的方法

    今天来学习变量优化问题.寻找使成本函数最小的题解.适用于题解相互独立的情况,设计随机优化算法.爬山法.模拟退火算法.遗传算法. 优化问题的的精髓是:1.将题解转化为数字序列化,可以写出题解范围.2.成本函数能返回值 问题场景: 所有乘客从不同的地方飞到同一个目的地,服务人员等待所有人到来以后将人一次性接走. 离开时,服务人员将人一次性带到飞机场,所有乘客等待自己的航班离开. 要解决的问题: 如何设置乘客的到来和离开航班,以及接送机的时间,使得总代价最小. 将题解设为数字序列. 数字表示某人乘坐的

随机推荐