0
点赞
收藏
分享

微信扫一扫

LeetCode 55 跳跃游戏

独西楼Q 2022-03-25 阅读 62

闫氏dp,自己先想了个

但是会超时

所以 最终还是屈服了,看了一眼题解……

然后发现自己真的绕了一个大弯……

 

 我一开始想的也是最简单的,后来想着要优化时间,结果脑子一抽越想越复杂了……

class Solution {
public:

    int f[100000];
    bool ans=false;
    int ma=0;//存储当前能达到的最大格子处

    bool canJump(vector<int>& nums){
        if(nums.size()<2) return true;

        int n=nums.size();
        
        for(int i=0;i<n-1;i++){
            f[i]=i+nums[i];
            if(i==0&&f[i]==0) break;

            if(f[i]>=n-1&&i<=ma){
                ans=true;
                break;
            }
            else if(i>ma) break;

            ma=max(ma,f[i]);
        }

        return ans;
    }
};
举报

相关推荐

0 条评论