Longest Mountain in Array LeetCode solution in Python

1
class Solution:
2
def longestMountain(self, arr: List[int]) -> int:
3
if len(arr) < 3:
4
return 0
5

6
max_up, max_down = [1 for _ in arr], [1 for _ in arr]
7

8
for i, x in enumerate(arr):
9
if i == 0:
10
continue
11
if x > arr[i - 1]:
12
max_up[i] = max_up[i - 1] + 1
13

14
for j, y in reversed(list(enumerate(arr))):
15
if j == len(arr) - 1:
16
continue
17
if y > arr[j + 1]:
18
max_down[j] = max_down[j + 1] + 1
19

20
return max(
21
x + y - 1 if x > 1 and y > 1 else 0 for x, y in zip(max_up, max_down)
22
)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0