本文共 973 字,大约阅读时间需要 3 分钟。
845. 数组中的最长山脉
class Solution: def longestMountain(self, A: List[int]) -> int: len_ = len(A) - 1 if len_ < 2 : return 0 peak,valley = list(),list() if A[0] >= A[1]: valley.append(1) for i in range(1,len_): if A[i]>A[i-1] and A[i]>A[i+1]: peak.append(i) elif A[i] == A[i-1] or A[i] == A[i+1]: valley.append(i) elif A[i] < A[i-1] and A[i] = A[len_-1]: valley.append(len_-1) if peak: max_ = 0 for _ in peak: begin,end = 0,len_ for j in valley: if j<_: begin = j else: end = j break max_ = max(max_,end-begin+1) return max_ return 0
时间复杂度是根据数组情况分化的
最优时间复杂度O(n),最差时间复杂度O(n²)转载地址:http://gqba.baihongyu.com/