题解 | #跳跃游戏(一)#
跳跃游戏(一)
http://www.nowcoder.com/practice/07484f4377344d3590045a095910992b
参考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 时表示不能到达;