题解 | #最大序列和#

最大序列和

https://www.nowcoder.com/practice/df219d60a7af4171a981ef56bd597f7b

经典的动态规划问题:
解决问题的关键在于dp[i]数组的定义
#include <iostream>
using namespace std;
#define MAXN 1000001
#define MIN -999999
int main(){
    long long dp[MAXN]={MIN};//dp[i]表示包括数组中包含第i个即A[i-1]的最大序列和
    long long A[MAXN]={0};
    long long N=0;
    long long res=MIN;
    while(cin>>N){
        res=MIN;
        for(int i=1;i<=N;i++){
            cin>>A[i];
        }
        for(int i=1;i<=N;i++){
            dp[i]=max(A[i],A[i]+dp[i-1]);
            res=max(res,dp[i]);
        }
        cout<<res<<endl;
        }
    return 0;
}



全部评论

相关推荐

咖啡馆守时的南瓜:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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