暴力查找,应该有更好的方法。DP之类的吧。。。
class Solution:
def longestMountain(self, A: List[int]) -> int:
if len(A) < 3:return 0
ans = float('-inf')
for i in range(1, len(A)-1):
if A[i] > A[i-1] and A[i] > A[i+1]:
#print(i)
curlength = self.subleng(A, i)
ans = max(ans, curlength)
return ans if ans != float('-inf') else 0
def subleng(self, A, i):
left = 0
right = len(A) - 1
l, r = i, i
res = 1
while l-1 >= left and A[l-1] < A[l]:
l -= 1
res += 1
while r+1 <= right and A[r+1] < A[r]:
r += 1
res += 1
return res