⬆︎
×

[LC] 0045 Jump Game II

Java

/**
 * <a href="https://leetcode.cn/problems/jump-game-ii/">Jump Game II</a>
 * 贪心;数组;动态规划
 */
class Solution {
    public int jump(int[] nums) {
        int end = 0;
        int maxPos = 0;
        int steps = 0;
        for (int i = 0; i < nums.length - 1; i++) {
            maxPos = Math.max(maxPos, i + nums[i]);
            if (i == end) {
                end = maxPos;
                steps++;
            }
        }
        return steps;
    }
}

Go

func jump(nums []int) int {
    end := 0
    maxPos := 0
    steps := 0
    for i := 0; i < len(nums)-1; i++ {
        maxPos = max(maxPos, i+nums[i])
        if i == end {
            end = maxPos
            steps++
        }
    }
    return steps
}

JavaScript

/**
 * @param {number[]} nums
 * @return {number}
 */
var jump = function (nums) {
    let end = 0;
    let maxPos = 0;
    let steps = 0;
    for (let i = 0; i < nums.length - 1; i++) {
        maxPos = Math.max(maxPos, i + nums[i]);
        if (i === end) {
            end = maxPos;
            steps++;
        }
    }
    return steps;
};

PHP

class Solution {

    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function jump(array $nums): int {
        $length = count($nums);
        $end = 0;
        $maxPos = 0;
        $steps = 0;
        for ($i = 0; $i < $length - 1; $i++) {
            $maxPos = max($maxPos, $i + $nums[$i]);
            if ($i == $end) {
                $end = $maxPos;
                $steps++;
            }
        }
        return $steps;
    }
}

发表评论