LeetCode #55:Jump Game(跳跃游戏)

题目描述

本题采用贪心策略解解决。设置一个记录当前能跳跃到的最大下标变量 cover,从下标 0 开始 “跳跃” 时总是将 cover 更新为 max(cover, i + nums[i]),直到 cover 不再增加或 cover 能覆盖最后一个数。

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int n = nums.size();
        int cover = nums[0];
        for(int i = 0; i <= cover && i < n; i ++) { // 注意此处是i<=cover,否则步长为1时就退出循环了
            cover = max(cover, i + nums[i]);
        }

        if(cover >= n - 1)
            return true;
        else
            return false;
    }
};

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注