给定一个长度为n的数组num,数组开始时呈现递增趋势的,到了某一点之后,数组中的值呈现递减趋势,符合这样先增后减规律的数组定义为金字塔数组,求整个num数组中找出长度最长的金字塔数组,如果金字塔数组不存在,请输出0
4,[1,2,3,1]
4
5,[1,5,3,3,1]
3
1<=n<=1000000,且num数组中的数 0<=num[i]<=1000000。
class Solution: def getMaxLength(self , n , num ): if len(num)<1: return 0 #储存波谷点的数组 res=[] # 寻找所有的波谷点 if(num[1]>=num[0]): res.append(0) for i in range(1,n-1): if num[i-1]>=num[i] and num[i]<=num[i+1]: res.append(i) if num[n-2]>=num[n-1]: res.append(n-1) # 将相邻两个波谷点的最大值结果保存在result中 result=0 for i in range(1,len(res)): result=max(result,res[i]-res[i-1]+1) return result