33.Jump Game(跳步游戏)

Level:

  Medium

题目描述:

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

Example 1:

Input: [2,3,1,1,4]
Output: true
Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.

Example 2:

Input: [3,2,1,0,4]
Output: false
Explanation: You will always arrive at index 3 no matter what. Its maximum
             jump length is 0, which makes it impossible to reach the last index.

思路分析:

  要想能够走到最后一个元素,则从头开始遍历,变量reach实时更新所能走的最大步数,判断能走的最大步数reach是否大于i,如果能则继续往下走,更新reach变量。

代码:

public class Solution{
    public boolean canJump(int []nums){
        int reach=0;
        for(int i=0;i<nums.length;i++){
            if(i>reach)
                return false;
            reach=Math.max(reach,i+nums[i]); //更新最大还能走几步
        }
        return true;
    }
}

猜你喜欢

转载自www.cnblogs.com/yjxyy/p/10847016.html
今日推荐