Bob lives with his wife in a city named Berland. Bob is a good husband, so he goes out with his wife every Friday to ‘Arcade’ mall.
‘Arcade’ is a very famous mall in Berland. It has a very unique transportation method between shops. Since the shops in the mall are laying in a straight line, you can jump on a very advanced trampoline from the shop i, and land in any shop between (i) to (i + Arr[i]), where Arr[i] is a constant given for each shop.
There are N shops in the mall, numbered from 0 to N-1. Bob's wife starts her shopping journey from shop 0 and ends it in shop N-1. As the mall is very crowded on Fridays, unfortunately, Bob gets lost from his wife. So he wants to know, what is the minimum number of trampoline jumps from shop 0 he has to make in order to reach shop N-1 and see his wife again. If it is impossible to reach the last shop, return -1.
Input format :
The first line of input contains a single integer T, representing the number of test cases or queries to be run.
Then the T test cases follow.
The first line of each test case contains a positive integer N, which represents the number of shops.
The next line contains 'N' single space-separated positive integers representing a constant given for each shop.
Output Format :
For each test case, print the minimum number of jumps or -1, if it is impossible to reach the last shop.
Note:
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints :
1 <= T <= 10
1 <= N <= 5 * 10^4
0 <= Arr[i] <= N
Where T is the number of test cases, N is the size of the array and Arr[i] is the ith element in the array.
As I had done the problem before, I knew the solution which involves dynamic programming as mentioned in the Geeksforgeeks link.
We will recursively find the minimum number of jumps.
Algorithm:
Let’s say we have a recursive function ‘minimumJumpsHelper’ which will return the minimum number of jumps to reach th...read more
In the previous approach, we are recalculating the answer to reach the last shop from a shop. We can optimise it by storing the answer for the amount which we have calculated.
For example, ...read more
Make an array DP of size N to store the answer.
DP[i] denotes the minimum number of jumps needed to reach the last shop from the ith shop.
- DP[N - 1] = 0.
- Initialize all other values with a ma...read more
In this approach, we will calculate the farthest shop we can reach from shop 0 with x number of jumps.
For example, if the given array is {2, 3, 1, 2, 1} :
For x=1, we can reach s...read more
Top MathWorks EDG Associate interview questions & answers
Top HR questions asked in MathWorks EDG Associate
Reviews
Interviews
Salaries
Users/Month