#+ANKI_DECK: study_deck_02 * TODO 0978. Longest Turbulent Subarray :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0978. Longest Turbulent Subarray][0978. Longest Turbulent Subarray]] :END: Given an integer array ~arr~, return /the length of a maximum size turbulent subarray of/ ~arr~. A subarray is *turbulent* if the comparison sign flips between each adjacent pair of elements in the subarray. More formally, a subarray ~[arr[i], arr[i + 1], ..., arr[j]]~ of ~arr~ is said to be turbulent if and only if: - For ~i <= k < j~: - ~arr[k] > arr[k + 1]~ when ~k~ is odd, and - ~arr[k] < arr[k + 1]~ when ~k~ is even. - Or, for ~i <= k < j~: - ~arr[k] > arr[k + 1]~ when ~k~ is even, and - ~arr[k] < arr[k + 1]~ when ~k~ is odd. *Example 1:* #+begin_src Input: arr = [9,4,2,10,7,8,8,1,9] Output: 5 Explanation: arr[1] > arr[2] < arr[3] > arr[4] < arr[5] #+end_src *Example 2:* #+begin_src Input: arr = [4,8,12,16] Output: 2 #+end_src *Example 3:* #+begin_src Input: arr = [100] Output: 1 #+end_src *Constraints:* - ~1 <= arr.length <= 4 * 10^{4}~ - ~0 <= arr[i] <= 10^{9}~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def maxTurbulenceSize(self, arr: List[int]) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int maxTurbulenceSize(vector& arr) { } }; #+end_src