55. 跳跃游戏

原题链接:55. 跳跃游戏

55. 跳跃游戏_第1张图片

solution: 贪心思想

① 如果能从x跳到y的位置,则x,x+1,x+2.....y-1,都能跳到y的位置。(容易证明)

② 如果从前i - 1个位置能跳的最远位置小于i,表示从前i-1个位置跳不到第i个位置

③ last保存的是前i - 1个位置能跳到的最远距离.

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

你可能感兴趣的:(#,热题HOT100,Leetcode,#,贪心)