Longest Turbulent Subarray LeetCode solution in Python
1# Runtime: 1152 ms (Top 13.10%) | Memory: 18.7 MB (Top 31.75%)2class Solution:3def maxTurbulenceSize(self, arr: List[int]) -> int:4def cmp(a, b):5if a == b:6return 07if a > b:8return 19return -11011n = len(arr)12ans = 113prev = 014for i in range(1, n):15c = cmp(arr[i - 1], arr[i])16if c == 0:17# we shift prev to i18prev = i19elif i == n - 1 or c * cmp(arr[i], arr[i + 1]) != -1:20ans = ans if ans > i - prev + 1 else i - prev + 121prev = i22return ans