You are given a 0-indexed array of integers nums of length n. You are initially positioned at nums[0].
Each element nums[i] represents the maximum length of a forward jump from index i. In other words, from index i you can jump to any index i + j where 0 <= j <= nums[i].
Return the minimum number of jumps to reach nums[n - 1]. The test cases are generated such that you can always reach nums[n - 1].
Input: nums = [2, 3, 1, 1, 4] Output: 2 Explanation: Jump 1 step from index 0 to index 1, then 3 steps to the last index. That is 2 jumps total.
Input: nums = [2, 3, 0, 1, 4] Output: 2 Explanation: Jump 1 step from index 0 to index 1, then 3 steps to the last index.
nums[n - 1].nums = [2, 3, 1, 1, 4]