在下标为i处能跳到的最远地方是i+num[i],整个跳跃过程能跳到的最远地方是reach.
最大下标是numslen -1,如果reach >= numslen-1,说明可以跳到,否则就跳不到。
每到一个位置就要更新reach,并检查是否可以跳到最后一格
#include<stdbool.h>
bool canJump(int* nums, int numsLen ) {
    int reach = 0;
    for(int i = 0; i < numsLen; i++){
        if(reach < i)
            return false;
        if(reach >= numsLen-1)
            return true;
        reach = reach > i + nums[i] ? reach : i+nums[i];
    }
     return true;
}