首页 > 其他分享 >寻找局部最高点-1D

寻找局部最高点-1D

时间:2022-10-27 13:02:47浏览次数:36  
标签:__ return 局部 location2 middle 最高点 1D highest find


如题,在1维数组中,如果一个数大于或等于左右两边相邻的数,则称局部最高点-1D。其中边界外值为

一种方法是从第一个元素逐个开始遍历。算法复杂度为

另一种算法使用二分法。对于一个点,有以下情况:

  • 两边小(此时是局部最高点)(暂时不考虑相等的情况);
  • 左边小右边大,此时局部最高点一定出现在右边,可以继续在右边继续寻找;
  • 左边大右边小则在左边继续寻找
  • 两边大,局部最高点出现在两边,向左向右都可以。
    此算法时间复杂度为

代码如下:

"""
@author: LiShiHang
@software: PyCharm
@file: 1.寻找局部高点-1D.py
@time: 2018/12/3 18:01
"""


def find_local_highest_location2(a):

if len(a) == 1:
return 0
if len(a) == 2:
return int(a[0] < a[1])

middle = len(a) // 2

if a[middle - 1] <= a[middle] >= a[middle + 1]:
return middle

elif a[middle - 1] > a[middle]:
return find_local_highest_location2(a[:middle])

else:
return middle + 1 + find_local_highest_location2(a[middle + 1:])


if __name__ == '__main__':
# A = [1, 5, 2, 3, 4, 0]
import numpy as np
A=np.random.randint(0,100,10).tolist()
i = find_local_highest_location2(A)
print(A)
print(i)


标签:__,return,局部,location2,middle,最高点,1D,highest,find
From: https://blog.51cto.com/u_15847885/5800831

相关文章

  • win10下 asp.net 未能加载文件或程序集“stdole, Version=7.0.3300.0, Culture=neutra
    win10下asp.net未能加载文件或程序集“stdole,Version=7.0.3300.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。......
  • Java知识6 局部变量、成员变量和类变量的区别【多测师】
    一、局部变量、成员变量、类变量静态变量:由static修饰的变量为静态变量本质为全局变量成员变量、类变量区别:1、成员变量随着对象创建存在对象回收而释放2、静态变量随着类......
  • day11DOM和BOM回顾以及事件讲解 ( 上 )
    内容回顾BOM(bowserobjectmodel)浏览器对象模型window:窗口对象(全局的变量及函数都属于window也就是global全局对象)location:地址栏对象(获取地......
  • CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
    CF741DArpa’sletter-markedtreeandMehrdad’sDokhtar-koshpaths给定一颗以\(1\)为根的树每个节点上有一个\(a\simv\)的小写字母,求每个子树内最长的链的长度......
  • 局部反转链表
    给你单链表的头指针head和两个整数 left和right,其中 left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。publicListNodere......
  • ARC141D
    关键点在于\(M\leN\le2M\)的条件。结论:在\(1\sim2M\)中至多选出\(M\)个数使得它们两两不为整除关系。证明:鸽巢原理。考虑把每个数写成\((x,y)\)表示\(A_i=x\ti......
  • 问题:keil使用局部变量出错
    发现在中断程序里定义变量容易出未知性错误://对count,sec计数voidtimer0()interrupt1{ staticunsignedcharcount=0; //unsignedcharK=0;//放这里没问题,定......
  • java泛型11day
           ......
  • ARC151D 解题报告
    题意:给定一个序列\(A_{0,...,2^k-1}\)。要执行\(q\)次如下操作:给定\(x_i,y_i\)。对于\(0,...,2^k-1\)中的所有数\(j\),如果\(j\)的第\(x_i\)位为\(y_i......
  • OpenCV无缝融合应用(三)--局部区域亮度调整(附C++源码)
    导读本期将介绍并演示OpenCV中使用illuminationChange实现图像中局部区域亮度调整的效果。介绍OpenCV图像无缝融合-seamlessClone介绍与使用(Python/C++源码)OpenCV无缝融......