LeetCode 55 -- 跳跃游戏 ( Jump Game ) ( C语言版 )

题目描述 : 

解题思路 : 本题目不能一开始从最大长度进行跳跃 , 应该一次次遍历每个数组元素 , 采用贪心法 , max表示每次能够到达的最远距

离 , 使用max=max<i+nums[i]?i+nums[i]:max; 求出上一步的最优解 , 当max小于i的时候证明已经不可能到达终点了 , 直接返回

false , 当i走到末尾时则证明可以达到最后的位置 .

代码如下 : 

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

猜你喜欢

转载自blog.csdn.net/ds19980228/article/details/82718632