题解 | #跳跃游戏(一)#
跳跃游戏(一)
https://www.nowcoder.com/practice/07484f4377344d3590045a095910992b
记录最远可以到达的地方,在遍历每个nums时,更新最远的距离
#include <iostream> using namespace std; const int N = 2e5+10; int a[N]; int n; int main() { scanf("%d",&n); for(int i = 0; i < n; i++){ scanf("%d", &a[i]); } //最远位置 int farthest = 0; bool ans = true; for(int i = 0; i < n; i++){ if(farthest>=i && a[i]+i>farthest){ farthest = a[i]+i; }else if(farthest < i){ ans = false; break; } } if(ans) printf("true"); else printf("false"); return 0; } // 64 位输出请用 printf("%lld")