LeetCode---55.跳跃游戏

题目来源:https://leetcode-cn.com/problems/jump-game/description/

题目描述:

 题目分析:这个题要先理解题目,题目中说的是:数字代表的是最大的可跳跃长度,比如数字是3,那么你跳1,2,3都行,而不是只可以跳3步。经过思考返回true有两种情况,一种是刚好跳到最后一个位置上,一种是超过最后一个位置。因为这题不需要求出每次跳的步数,只需要知道能否跳到最后。所以这两种情况其实就是一种。

算法描述:1.定义max用来存放当前能跳的最远距离。i从0开始遍历,每到一个位置都判断max的值是否大于i,如果小于i说明当前的最大步数不足以走到i位置,则直接返回false,否则,让当前i位置能走的最大步数和max比较。让max重新赋值。

代码如下:

bool canJump(int* nums, int numsSize) {
    int max=0;
    for(int i=0;i<numsSize;i++){
        if(i>max){
            return false;
        }else{
            max=max>(nums[i]+i)?max:(nums[i]+i);
        }
    }
    return true;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值