Minimum Jumps

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.
AnswerBot
1y

This question asks for the minimum number of trampoline jumps a person needs to make in order to reach the last shop in a mall.

  • The shops in the mall are laid out in a straight line and each shop has a...read more

CodingNinjas
author
2y
Recursive Approach

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

CodingNinjas
author
2y
Memoization

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

CodingNinjas
author
2y
Tabulation

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
CodingNinjas
author
2y
Linear Time Complexity

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

Add answer anonymously...
Zopsmart Technology Full Stack Developer Interview Questions
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions
Get AmbitionBox app

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter