跳跃游戏1

跳跃游戏1_第1张图片

以示例1为例,从位置0开始,可以跳到位置1,2.假设我们选择跳到位置1的话,从位置1可以跳到位置2,3,4,。而我们选择跳到位置2的话,从位置2可以跳到位置3.

可以看出位置2能跳到的位置 包含于 位置1能跳到的位置,所以我们从位置0开始跳的话,选择的将要跳的那个位置(1or2)是一个能跳到更远的位置,因为位置2能跳到的位置,位置1也能跳到,而位置1能跳的位置,位置2却跳不到。贪心思想体现在这里。

class Solution {
public:
    bool canJump(vector& nums) {
        vector index;//保存每个位置可以到达的最远下标位置
        for(int i =0;i max_jump)
                max_jump = index[jump];
            jump++;
        }
        if(jump == index.size() )
            return true;
        return false;
    }
};

你可能感兴趣的:(LeetCode)