Longest Turbulent Subarray LeetCode solution in Python

1
# Runtime: 1152 ms (Top 13.10%) | Memory: 18.7 MB (Top 31.75%)
2
class Solution:
3
def maxTurbulenceSize(self, arr: List[int]) -> int:
4
def cmp(a, b):
5
if a == b:
6
return 0
7
if a > b:
8
return 1
9
return -1
10

11
n = len(arr)
12
ans = 1
13
prev = 0
14
for i in range(1, n):
15
c = cmp(arr[i - 1], arr[i])
16
if c == 0:
17
# we shift prev to i
18
prev = i
19
elif i == n - 1 or c * cmp(arr[i], arr[i + 1]) != -1:
20
ans = ans if ans > i - prev + 1 else i - prev + 1
21
prev = i
22
return ans

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0