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

跳跃游戏(二)

https://www.nowcoder.com/practice/58e31b785f4b4ced9695dd4fcd60c1ce

// 掉转思维,从后往前走,  (上一个,当前一个,下一个)
// 从后往前遍历,若下一个能够得上当前这个则选取它。
// 因为从前往后走时,如果上一个能够的上下一个,则上一个一定能够得上当前一个,因为是非负整数,选了不会亏
#include<iostream>
using namespace std;
const int N=1e5+6;
int arr[N];
int n;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>arr[i];
    }
    int ind=n-1,ans=arr[n-1];
    for(int i=n-2;i>=0;i--){
        if(i+arr[i]>=ind){
            ind=i;
            ans+=arr[i];
        }
    }
    if(ind==0) cout<<ans;
    else cout<<"-1";

    return 0;
}

全部评论

相关推荐

找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务