一、
1、
#include<iostream> #include<cmath> using namespace std; bool CanJump(int n[],int num) { if (num==1) return 1; //如果向量长度为 1,则 int loc; int gla=0; for(int i=0;i<num-1;i++) { if(gla<i){ //进入不到下一步 break; } loc=i+n[i]; //局部变量,每一个位置能达到的最远位置 gla=max(gla,loc); //全局变量,达到的最大位置 ,一定要注意判断,两者融合的过程 } if(gla>=num-1) { return 1; } else{ return 0; } } int main() { int a[]={2,3,1,1,4}; if(CanJump(a,5)==1) { cout<<"True"; } else{ cout<<"False"; } return 0; }
2、
当{3,2,1,0,4}时,如下结果
二、