OJ_最大序列和

题干

C++实现

cpp 复制代码
#include <stdio.h>
#include <algorithm>
using namespace std;

long long s[1000001];
long long dp[1000002];//dp[i]是前i个元素中必须包含右边缘的最大子序和

int main() {
    int n;
    scanf("%d",&n);
    for(int i = 0; i< n;i++){
        scanf("%lld",&s[i]);
    }

    dp[1] = s[0];
    long long curmax = dp[1];
    for(int i = 2;i<=n;i++){
        if(dp[i-1] <= 0){
            dp[i] = s[i-1];
        }else{
            dp[i] = s[i-1]+dp[i-1];
        }
        curmax = max(dp[i],curmax);
    }
    printf("%lld",curmax);
    return 0;
}
相关推荐
爱上妖精的尾巴10 分钟前
6-4 WPS JS宏 不重复随机取值应用
开发语言·前端·javascript
fie88891 小时前
NSCT(非下采样轮廓波变换)的分解和重建程序
算法
小鸡吃米…2 小时前
Python 列表
开发语言·python
kaikaile19952 小时前
基于C#实现一维码和二维码打印程序
开发语言·c#
晨晖22 小时前
单链表逆转,c语言
c语言·数据结构·算法
我不是程序猿儿2 小时前
【C#】画图控件的FormsPlot中的Refresh功能调用消耗时间不一致缘由
开发语言·c#
rit84324992 小时前
C# Socket 聊天室(含文件传输)
服务器·开发语言·c#
kk哥88993 小时前
C++ 对象 核心介绍
java·jvm·c++
helloworddm3 小时前
WinUI3 主线程不要执行耗时操作的原因
c++
嘉琪0013 小时前
Vue3+JS 高级前端面试题
开发语言·前端·javascript