Odd Even Jump

You are given an integer array arr. From some starting index, you can make a series of jumps. The 1st, 3rd, 5th, ... jumps in the series are called odd-numbered jumps, and the 2nd, 4th, 6th, ... jumps in the series are called even-numbered jumps. Note that the jumps are numbered, not the indices.

You may jump forward from index i to index j with i < j using the following rules:

  • During odd-numbered jumps (jumps 1, 3, 5, ...), jump to the index j such that arr[i] <= arr[j] and arr[j] is the smallest possible value. If there are multiple such indices j, you can only jump to the smallest such index j.
  • During even-numbered jumps (jumps 2, 4, 6, ...), jump to the index j such that arr[i] >= arr[j] and arr[j] is the largest possible value. If there are multiple such indices j, you can only jump to the smallest such index j.
  • It may be the case that for some index i, there are no legal jumps.

A starting index is good if, starting from that index, you can reach the end of the array at index arr.length - 1 by jumping some number of times, possibly 0 or more than once.

Return the number of good starting indices.

Example 1
Inputarr = [10,13,12,14,15]
Output2
Only starting indices 3 and 4 can reach the end of the array.
Example 2
Inputarr = [2,3,1,1,4]
Output3
The good starting indices are 1, 3, and 4, so there are 3 in total.

Constraints

  • 1 <= arr.length <= 2 * 10^4
  • 0 <= arr[i] < 10^5

Asked at 2 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