Longest Turbulent Subarray
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 one of the following holds:
- For
i <= k < j: arr[k] > arr[k + 1]whenkis odd, andarr[k] < arr[k + 1]whenkis even.- Or, for
i <= k < j: arr[k] > arr[k + 1]whenkis even, andarr[k] < arr[k + 1]whenkis odd.
Example 1
Input
arr = [9,4,2,10,7,8,8,1,9]Output
5The subarray
[4, 2, 10, 7, 8] is turbulent because 4 > 2 < 10 > 7 < 8.Example 2
Input
arr = [4,8,12,16]Output
2Any adjacent pair such as
[4, 8] is turbulent, but longer subarrays do not have alternating comparison signs.Constraints
- 1 <= arr.length <= 4 * 10^4
- 0 <= arr[i] <= 10^9