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.
It can be solved by using mathematics. If the height of wall is less than or equal to x, only one jump is required. Otherwise run a while loop while height is greater than x, and calculate the jumps r...read more
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 MakeMyTrip Software Developer interview questions & answers
Popular interview questions of Software Developer
Reviews
Interviews
Salaries
Users/Month