2026-06-01 18:12:40 +08:00
|
|
|
#+ANKI_DECK: study_deck_02
|
2026-06-01 17:12:10 +08:00
|
|
|
* TODO 0978. Longest Turbulent Subarray :medium:
|
2026-06-01 02:33:30 +08:00
|
|
|
:PROPERTIES:
|
2026-06-01 17:22:07 +08:00
|
|
|
:NEETCODE: [[file:../../roadmap.org::*0978. Longest Turbulent Subarray][0978. Longest Turbulent Subarray]]
|
2026-06-01 02:33:30 +08:00
|
|
|
:END:
|
|
|
|
|
|
2026-06-01 17:22:07 +08:00
|
|
|
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}~
|
|
|
|
|
|
2026-06-01 02:39:53 +08:00
|
|
|
** TODO Approach
|
|
|
|
|
Write your approach here.
|
|
|
|
|
|
|
|
|
|
** TODO Python
|
|
|
|
|
#+begin_src python
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution:
|
|
|
|
|
def maxTurbulenceSize(self, arr: List[int]) -> int:
|
2026-06-01 02:39:53 +08:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
|
|
** TODO C++
|
2026-06-01 02:33:30 +08:00
|
|
|
#+begin_src cpp
|
2026-06-01 17:22:07 +08:00
|
|
|
class Solution {
|
|
|
|
|
public:
|
|
|
|
|
int maxTurbulenceSize(vector<int>& arr) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-06-01 02:33:30 +08:00
|
|
|
#+end_src
|