在下标为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; }