使用Python语言实现算法复杂度为On的寻找一维局部高点的算法。输入格式input按照列表格式输入一组相邻点各不相等的非负整数。输出格式print输出第一个找到的局部高点数值。
要实现算法复杂度为O(n)的寻找一维局部高点的算法,可以遍历整个列表,判断每个点是否为局部高点。
算法步骤如下:
- 初始化局部高点变量为-1。
- 遍历列表中的每个点,从索引1开始到倒数第二个点。
- 判断当前点是否为局部高点,即判断当前点是否比其前一个点和后一个点都大。
- 如果是局部高点,将当前点赋值给局部高点变量,并结束遍历。
- 如果不是局部高点,继续遍历下一个点。
- 输出局部高点的数值。
以下是实现上述算法的Python代码:
def find_local_peak(arr):
n = len(arr)
local_peak = -1
for i in range(1, n-1):
if arr[i] > arr[i-1] and arr[i] > arr[i+1]:
local_peak = arr[i]
break
return local_peak
# 测试样例
arr = [1, 2, 3, 2, 1]
peak = find_local_peak(arr)
print(peak)
输出结果为:
3
这里的时间复杂度为O(n),因为需要遍历整个列表。
原文地址: https://www.cveoy.top/t/topic/i7Ew 著作权归作者所有。请勿转载和采集!