题解 | #跳跃游戏(一)#

跳跃游戏(一)

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")

全部评论

相关推荐

totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务