参考LK上大佬的代码;
int main() { int n,i , k = 0; // k表示最远能到达的距离; cin>>n; int a[n+1]; for(int i = 0; i < n ; i++) cin>>a[i]; for(i = 0; i < n ; i++) { if(i > k) { cout<<"false"<<endl; break; } k = max(k,i+a[i]); } if( i == n) cout<<"true"<<endl; return 0; }k 表示所能到达的最远距离,而i 表示当前距离;
所以 i > k 时表示不能到达;