All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0001_0100.s0045_jump_game_ii.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0001_0100.s0045_jump_game_ii;

// #Medium #Top_100_Liked_Questions #Array #Dynamic_Programming #Greedy
// #Algorithm_II_Day_13_Dynamic_Programming #Dynamic_Programming_I_Day_4
// #Big_O_Time_O(n)_Space_O(1) #2023_08_11_Time_2_ms_(49.02%)_Space_44.7_MB_(52.72%)

/**
 * 45 - Jump Game II\.
 *
 * Medium
 *
 * Given an array of non-negative integers `nums`, you are initially positioned at the first index of the array.
 *
 * Each element in the array represents your maximum jump length at that position.
 *
 * Your goal is to reach the last index in the minimum number of jumps.
 *
 * You can assume that you can always reach the last index.
 *
 * **Example 1:**
 *
 * **Input:** nums = [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. 
 *
 * **Example 2:**
 *
 * **Input:** nums = [2,3,0,1,4]
 *
 * **Output:** 2 
 *
 * **Constraints:**
 *
 * *   1 <= nums.length <= 104
 * *   `0 <= nums[i] <= 1000`
**/
public class Solution {
    public int jump(int[] nums) {
        int length = 0;
        int maxLength = 0;
        int minJump = 0;
        for (int i = 0; i < nums.length - 1; ++i) {
            length--;
            maxLength--;
            maxLength = Math.max(maxLength, nums[i]);
            if (length <= 0) {
                length = maxLength;
                minJump++;
            }
            if (length >= nums.length - i - 1) {
                return minJump;
            }
        }
        return minJump;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy