LeetCode-55. 跳跃游戏

一、题目

LeetCode-55. 跳跃游戏

二、思路

每次都计算是否能到达这个位置,如果能到达计算在这位置最远可以到达的位置(i+nums[i]),如果最远可以到达的地方大于等于nums.size()-1,则返回true
LeetCode-55. 跳跃游戏

三、代码

class Solution {
public:
    bool canJump(vector<int>& nums) {
        if(nums.empty())
        {
            return false;
        }
        else if(nums.size()==1)
        {
            return true;
        }
        vector<int>dp(nums.size(),0);
        dp[0]=nums[0];
        int Max=nums[0];
        for(int i=0;i<nums.size();++i)
        {
            if(Max<i)
            {
                return false;
            }
            dp[i]=i+nums[i];
            if(dp[i]>=nums.size()-1)
            {
                return true;
            }
            Max=Max>dp[i]?Max:dp[i];
        }
        return false;
    }
};
上一篇:【算法与数据结构】leetcode-55-跳跃游戏


下一篇:【LG P4170】涂色