美文网首页
LeetCode-Jump Game

LeetCode-Jump Game

作者: 圣地亚哥_SVIP | 来源:发表于2018-09-20 23:52 被阅读0次

题目简述:
给定一个数组,判断是否能够到达最后一个节点。跳跃规则:每次最多只能跳跃不超过其值。

以下是两种方法,回溯法会超时。

class Solution {
public:
    //Time Limit Exceed
    /*
    int jumpEnd(vector<int>& nums,bool& res,int level){
        if (level == nums.size()-1){
            res = true;
            return 0;
        }
        for (int i=1;i<= nums[level];++i){
            if (level+i>=nums.size()-1){
                res = true;
                return 0;
            }
            jumpEnd(nums,res,level+i);
            if (res)return 0;
        }
        return 0;
    }
    bool canJump(vector<int>& nums) {
        bool res=false;
        int ret = jumpEnd(nums,res,0);
        return res;
    }
    */
    bool canJump(vector<int>& nums){
        vector<bool> flag(nums.size(),false);
        flag[0] = true;
        for(int i=0;i<nums.size();++i){
            if(flag[i]==false)return false;
            for (int offset=1;offset<=nums[i];++offset){
                if(i+offset<nums.size()){
                    flag[i+offset] = true;
                }
            }
        }
        return true;
    }
};

相关文章

网友评论

      本文标题:LeetCode-Jump Game

      本文链接:https://www.haomeiwen.com/subject/jtmonftx.html