python函数峰值 python数值函数( 四 )


好了 , 到这里代码基本分析完了 。如果还有不清楚的地方欢迎下方留言 。
除了这种算法外,我也写一种贪心算法来求解这道题,只可惜最坏的情况下算法复杂度还是O(n^2),QAQ 。
大体的思路就是从中间位置起找相邻4个点中最大的点,继续把该点来找相邻最大点,最后一定会找到一个峰值点 , 有兴趣的可以看一下,上代码:
#!/usr/bin/python3
def dp(n):
temp = (str[n],str[n-9],str[n-1],str[n+1],str[n+9])#中 上 左 右 下
sit = temp.index(max(temp))
if(sit==0):
return str[n]
elif(sit==1):
return dp(n-9)
elif(sit==2):
return dp(n-1)
elif(sit==3):
return dp(n+1)
else:
return dp(n+9)
f = open("/home/nancy/桌面/demo.txt","r")
list = f.read()
list = list.replace(" ","").split()#转换为列表
row = len(list)
col = len(list[0])
str="0"*(col+3)
for x in list:#加围墙 二维变一维
str+=x+"00"
str+="0"*(col+1)
mid = int(len(str)/2)
print(str,mid)
p = dp(mid)
print (p)
f.close()
以上这篇python分治法求二维数组局部峰值方法就是小编分享给大家的全部内容了,希望能给大家一个参考
python 寻找曲线的峰值 谷值a = [x,x,x,x,x,x,x]
h = []
l = []
for i in range(1, len(a)-1):
if(a[i-1]a[i] and a[i+1]a[i]):
h.append(a[i])
elif(a[i-1]a[i] and a[i+1]a[i]):
l.append(a[i])
if(len(h) == 0):
h.append(max(a))
if(len(l) == 0):
l.append(min(a[a.index(max(a)):]))
print h
print l
python函数峰值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python数值函数、python函数峰值的信息别忘了在本站进行查找喔 。

推荐阅读