https://leetcode.com/problems/jump-game/description/

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

Example 1:

Input: [2,3,1,1,4]
Output: true
Explanation: Jump 1 step from index 0 to 1, then 3 steps to the last index.

Example 2:

Input: [3,2,1,0,4]
Output: false
Explanation: You will always arrive at index 3 no matter what. Its maximum
             jump length is 0, which makes it impossible to reach the last index.

每个下标意味着这个点开始最远可以走多远

那么当前点到i+nums[i]中间的点肯定都能到

那么维护最远能到哪里

要是到不了最远就是false

2A 10+分钟真开心

不过在竞赛中就是签到题 555

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int n=nums.size();
        int maxn=0;
        for(int i=0;i<n;i++){
            if(maxn<i+nums[i])
                maxn=i+nums[i];
            if(i==maxn&&i!=n-1)
                return false;
        }
        return true;
    }
};