Python Leetcode问题#845阵列中最长的山

Python Leetcode问题#845阵列中最长的山,python,python-3.x,Python,Python 3.x,这是我的密码: def longestMountain(self, A: List[int]) -> int: i=1 list=[] if len(A)<3: return 0 if (len(A)==3 and A[0]>=A[1] and A[1]<=A[2]): return 0 while i < len(A):

这是我的密码:

    def longestMountain(self, A: List[int]) -> int:
        i=1
        list=[]
        if len(A)<3:
            return 0
        if (len(A)==3 and A[0]>=A[1] and A[1]<=A[2]):
            return 0
        while i < len(A):
            count=1
            if A[i]<=A[i-1]:
                i+=1
            while (i< len(A) and A[i]>A[i-1]):
                count+=1
                i+=1
            if count==1 or count==len(A):
                return 0
            while (i< len(A) and A[i]<A[i-1]):
                count+=1
                i+=1
            list.append(count)
        return max(list)
def longestmounting(self,A:List[int])->int:
i=1
列表=[]

如果len(A)=A[1]和A[1]我们可以只计算起起伏伏,然后使用
max()

类解决方案:
def longestMountain(自我,nums):
最长=0
向上=向下=0
对于范围(1,len(nums))中的i:
如果向下且nums[i-1]nums[i]
如果向上和向下:
最长=最大(最长,向上+向下+1)
回程最长

我们只需计算起起伏伏,然后使用
max()

类解决方案:
def longestMountain(自我,nums):
最长=0
向上=向下=0
对于范围(1,len(nums))中的i:
如果向下且nums[i-1]nums[i]
如果向上和向下:
最长=最大(最长,向上+向下+1)
回程最长
while循环中的“return 0”如果没有找到更多的山,则返回,而不管是否找到了以前的山。在“count==1”的情况下,它应该中断循环,并在循环后分别检查空列表。while循环中的“return 0”如果没有找到更多的山,则返回,而不管是否找到以前的山。如果“count==1”,则应中断循环,并在循环后单独检查空列表。
class Solution:
    def longestMountain(self, nums):
        longest = 0
        up = down = 0
        for i in range(1, len(nums)):
            if down and nums[i - 1] < nums[i] or nums[i - 1] == nums[i]:
                up = down = 0

            up += nums[i - 1] < nums[i]
            down += nums[i - 1] > nums[i]

            if up and down:
                longest = max(longest, up + down + 1)

        return longest