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;
}
相关推荐
月光在发光9 分钟前
多态(虚函数核心作用原理)--C++学习(0)
c++·学习
Sunsets_Red17 分钟前
2025 FZYZ夏令营游记
java·c语言·c++·python·算法·c#
自由生长202431 分钟前
从流式系统中思考-C++生态和Java生态的区别
java·c++
iAkuya41 分钟前
(leetcode)力扣100 19螺旋矩阵(方向数组/边界把控)
算法·leetcode·矩阵
培培说证44 分钟前
2026大专Java开发工程师,考什么证加分?
java·开发语言·python
爱编程的小吴1 小时前
【力扣练习题】热题100道【哈希】 最长连续序列
算法·leetcode·职场和发展
qq_336313931 小时前
java基础-方法引用
java·开发语言·算法
总是学不会.1 小时前
【JUC编程】一、线程的基础概念
java·开发语言·jvm
我是唐青枫1 小时前
C#.NET struct 全解析:什么时候该用值类型?
开发语言·c#·.net
沉下去,苦磨练!1 小时前
计算一个字符串在另一个字符串中出现次数
java·开发语言