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 indexjsuch thatarr[i] <= arr[j]andarr[j]is the smallest possible value. If there are multiple such indicesj, you can only jump to the smallest such indexj. - During even-numbered jumps (jumps
2,4,6, ...), jump to the indexjsuch thatarr[i] >= arr[j]andarr[j]is the largest possible value. If there are multiple such indicesj, you can only jump to the smallest such indexj. - 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.
arr = [10,13,12,14,15]2arr = [2,3,1,1,4]3Constraints
- 1 <= arr.length <= 2 * 10^4
- 0 <= arr[i] < 10^5
Asked at 2 companies
Practice questions like this out loud in a mock coding interview with a live AI interviewer. First one free.