2
def oddEvenJumps(self, arr: List[int]) -> int:8
# for odd jump: for i, get next larger one9
odd_next = [i for i in range(l)]10
stack = [] # mono inc for ind11
for n, i in sorted([(arr[i], i) for i in range(l)]):12
while stack and stack[-1] < i:13
odd_next[stack.pop()] = i16
# for even jump: for i, get next smaller one17
even_next = [i for i in range(l)]18
stack = [] # mono inc for ind19
for n, i in sorted([(-arr[i], i) for i in range(l)]):20
while stack and stack[-1] < i:21
even_next[stack.pop()] = i29
ind = odd_next[i] if odd else even_next[i]34
return dp(ind, not odd)36
for i in range(l - 1):