Geeksforgeeks

X

DAYS

:

HOUR

:

MINS

:

SEC

Error

Copied to Clipboard

Given an array of **N** integers **arr[]** where each element represents the max number of steps that can be made forward from that element. Find the minimum number of jumps to reach the end of the array (starting from the first element). If an element is **0**, then you cannot move through that element.

**Note: **Return -1 if you can't reach the end of the array.

**Example 1:**

Input:N = 11 arr[] = {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9}Output:3Explanation:First jump from 1st element to 2nd element with value 3. Now, from here we jump to 5th element with value 9, and from here we will jump to last.

**Example 2:**

Input :N = 6 arr = {1, 4, 3, 2, 6, 7}Output:2Explanation:First we jump from the 1st to 2nd element and then jump to the last element.

**Your task:**

You don't need to read input or print anything. Your task is to complete function **minJumps()** which takes the array **arr** and it's size **N** as input parameters and returns the minimum number of jumps. If not possible returns -1.

**Expected Time Complexity: **O(N)

**Expected Space Complexity: **O(1)

**Constraints:**

1 ≤ N ≤ 10^{7}

0 ≤ arr_{i} ≤ 10^{7}

We are replacing the old Disqus forum with the new Discussions section given below.

Click here to view old Disqus comments.

Click here to view old Disqus comments.

Login to report an issue on this page.

We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?

YesLoading...

Minimum number of jumps

...