leetcode 55.跳跃游戏

  贪心,$O(n)$。

  扫一遍数组。声明一个last存从1出发可以跳到的最远位置。如果可以跳到$i$,那么最远的位置起码可以到$i+nums[i]$。如果扫到最远都到不了的点,就return 0。

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int last=0;
        for (int i=0;i<nums.size();i++)
            if (i<=last)
                last=last>i+nums[i]?last:i+nums[i];
            else return false;
        return true;
    }
};

 

posted @ 2021-06-11 17:03  wegret  阅读(40)  评论(0)    收藏  举报