Min Jumps

You are given an array of N integers, A1, A2 ,…, AN and an integer B which denotes that from any index i, you can jump to any of the indices i+1, i+2, …, i+B. Also, if you step on index i, you have to pay Ai coins. If Ai is -1, it means you can’t land on index i.

You start from index 1, and your aim is to reach index N. Return the path you should take to minimise the number of coins required. If there are multiple paths with same cost, return the lexicographically smallest such path. If its not possible to reach index N return empty array.

Notes
* Ai is either > 0(denoting cost) or -1(denoting that it is not possible to land on index i).
* You have to pay coins both at starting and ending indices.
* Path a1, a2 ,…, an is lexicographically smaller than b1, b2 ,…, bm, if and only if at the first i where ai and bi differ, ai < bi, or if no such i exists, then n < m.

For example,

A=[1, 2, 4, -1, 2] and B = 2

The path which requires minimum coins is to start at index 1 and then move to index 3 and then to 5.
So return [1, 3, 5].

Another example,

A=[1, 2, 4, -1, 2] and B = 1

In this case it is not possible to reach index 5. So return empty array [].

Interview Code Editor
36 successful submissions.
Click here to jump start your coding interview preparation