题目描述:
看题目应该不能发现,如果都是大于0的数肯定必过;所以只要判断0之前的数会不会那个会不会大于这两个数下标的差;
代码实现:
bool canJump(int* nums, int numsSize){ if(numsSize==1&&nums[0]==0) return true; if(nums[0]==0) return false;//任意数组第一个为0,就直接返回 int k,j;//k为下标之间的差,j为那个数的下标; for(int i=0;i<numsSize-1;i++)//numsSize-1 最后一个数不用参加 { if(nums[i]>0) continue; for(j=i-1,k=1;j>=0;j--){ if(nums[j]>k) break; k++; } if(j<0) return false;//这个意思就是0之前没有数大于两个数下标的差; } return true; } |