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] 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
Inputarr = [9,4,2,10,7,8,8,1,9]
Output5
The subarray [4, 2, 10, 7, 8] is turbulent because 4 > 2 < 10 > 7 < 8.
Example 2
Inputarr = [4,8,12,16]
Output2
Any 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

Asked at 3 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate