题解 | #最大序列和#

最大序列和

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

注意本题数据较大,需要用到 long long 类型(long 类型与 int 类型 都为四字节,因此范围相同)
#include<iostream>
using namespace std;

const int maxn=1000001;
long long N[maxn];
long long dp[maxn];

long long getmaxdp(int n){
	dp[0]=N[0];
	int i=1;
	while(i<n){
		if(dp[i-1]>0){
			dp[i]=dp[i-1]+N[i];
		}else{
			dp[i]=N[i];
		}
		i++;
	}
	long long answer=dp[0];
	for(int i=0;i<n;i++){
		if(dp[i]>answer){
			answer=dp[i];
		}
	}
	return answer;
}

int main(){
	int n;
	while(cin>>n){
		for(int i=0;i<n;i++){
			cin>>N[i];
		}
		cout<<getmaxdp(n)<<endl;
	}
} 


全部评论

相关推荐

11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务