【跳跃游戏】
class Solution {
public:bool canJump(vector<int>& nums) {int maxv=0;for(int i=0;i<nums.size()&&i<=maxv;i++){maxv=max(maxv,i+nums[i]);}return maxv>=nums.size()-1;}
};
思路:
依次遍历数组中的每一个位置,并实时维护最远可以到达的位置。对于当前遍历到的位置 i,如果它 最远可以到达的位置的范围内,那么就可以从起点通过若干次跳跃到达该位置,因此可以用 i+nums[i] 更新 最远可以到达的位置。
在遍历的过程中,如果 最远可以到达的位置 大于等于数组中的最后一个位置,那就说明最后一个位置可到达.