标签:没有 char == its 最大 一段 sum getchar color
最大连续和:给出一段序列,选出其中连续且非空的一段使得这段和最大。
stdin:
2 -4 3 -1 2 -4 3
stdout:
4
状态转移方程:dp[i]=max(dp[i-1]+a[i],a[i])
如果dp(i-1)已经为负数,那么前i-1段就没有意义了,我们直接从a[i]重新开始取。
#include<bits/stdc++.h> using namespace std; int a[1000],dp[1000]; int sum=-9999999; int main() { while(1) { cin>>n[i];//输入 char c=getchar(); if(c==‘\n‘) break; dp[i]=max(dp[i-1]+n[i],n[i]); sum=max(sum,dp[i]); } cout<<sum; return 0; }
标签:没有 char == its 最大 一段 sum getchar color
原文地址:https://www.cnblogs.com/iloveysm/p/12249312.html