Leetcode -- Jump Game

https://oj.leetcode.com/problems/jump-game/

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.

For example:
A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

 public boolean canJump(int[] A)


分析:这一题其实和之前Jump Game II 是类似的,在之前到达最近保存的一个最大可达范围之前,不停维护更新下一个最大可达范围,一旦到达现在的最大可达范围,就更新。 这里由于不需要计算最小步数,所以只需要不停维护当前的就可以了。一旦维护的值没有办法走到当前这个格子,就返回false,如果能够顺利走完,就返回true。 给出代码如下:

    public boolean canJump(int[] A) {
        int curnext = A[0];
        for(int i = 1; i < A.length; i++){
            if(curnext < i)
                return false;
            curnext = Math.max(curnext, A[i] + i);
        }
        return true;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值