Given an array of non-negative integers A[ ] of length n, where each element represents the max number of steps that can be made forward from that element. You are initially positioned at the first index of the array. Write a program to return the minimum number of jumps to reach the last index of the array.

Problem Note

  • If it is not possible to reach the last index, return -1.
  • If an element is 0, then cannot move through that element.

Example 1

Input: A[] = [2, 1, 1] 
Output: 1 
Explanation: The minimum number of jumps to reach the last index is 1. Jump 2 steps from index 0 to 2.

Example 2

Input: A[] = [2, 3, 1, 1, 4] 
Output: 2 
Explanation: The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 steps to the last index.