
# -*- encoding = 'utf-8' -*-
'''
功能:给定一个一维列表,求取列表中的极大值并返回
'''
def seekopp(list_2,i):
for j in range(i-1,-1,-1):
if list_2[j]==0:
continue
elif list_2[j]>0:
return 1
elif list_2[j]<0:
return 0
def local_maximum(list_1):
a=len(list_1)
if a==0:
return 'error'
if a==1:
return list_1
if a==2:
if list_1[0]>list_1[1]:
return list_1[0]
elif list_1[0]2:
list_2=[]
index_1=[]
for i in range(0,a-1):
list_2.append(list_1[i+1]-list_1[i])
b=len(list_2)
if list_2[0]<0:
index_1.append(0)
for i in range(0,b-1):
if list_2[i+1]<0:
if list_2[i]>0:
index_1.append(i+1)
elif list_2[i]==0:
if seekopp(list_2,i):
index_1.append(i+1)
else:
continue
else:
continue
list_3=[]
for i in index_1:
list_3.append(list_1[i])
return list_3
if __name__ == "__main__":
num_2=[1,5,1,12,3,22,22,1]
print(local_maximum(num_2))
结果如下:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)