题解 | #最大序列和#

最大序列和

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

#include <bits/stdc++.h>
#include <climits>
using namespace std;

int main() {
    long long n;
    while(cin>>n){
        long long arr[n];
    for(int i =0;i<n;i++)
        cin>>arr[i];
    //开始处理dp
    //dp[i]等于arr[i]和dp[i-1]+arr[i]中大者
    long long dp[n];
    dp[0] = arr[0];
    for(int i =1;i<n;i++)
        dp[i] = max(arr[i],dp[i-1]+arr[i]);
    //输出dp中最大者
    long long max = LLONG_MIN;
    for(auto a :dp){
        if(a>max)max=a;
    }
    cout<<max;
    }
    
    

}
// 64 位输出请用 printf("%lld")

标准dp应用

全部评论

相关推荐

08-11 19:01
集美大学 Java
Elastic90:公司名字都这样了,这老板也聪明不到哪儿去吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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