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