1020. Longest Turbulent Subarray
My accepted Python solution to LeetCode problem 1020, Longest Turbulent Subarray, running in 52ms.
- Difficulty: Medium
- Python
- Runtime 52ms
- Memory 19.8MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
Python
Accepted on LeetCode — runtime 52ms, memory 19.8MB, accepted 2026-01-02.
class Solution:
def maxTurbulenceSize(self, arr: List[int]) -> int:
n = len(arr)
if n == 1:
return 1
# inc[i] = length of turbulent ending at i where arr[i-1] < arr[i]
# dec[i] = length of turbulent ending at i where arr[i-1] > arr[i]
inc = dec = 1
max_len = 1
for i in range(1, n):
if arr[i] > arr[i-1]:
inc = dec + 1
dec = 1
elif arr[i] < arr[i-1]:
dec = inc + 1
inc = 1
else:
inc = dec = 1
max_len = max(max_len, inc, dec)
return max_len