最大字段和问题

【问题描述】

若给定n个整数组成的序列a1,a2,a3,……an,求该序列形如ai+ai+1+……+an的最大值。
注意:当所有整数均为负整数时定义此时最大子段和为0.

【输入形式】

第一行输入所输入数的个数,第二行输入各个数

【输出形式】

该数组的最大子段和

【样例输入】

7
-1 -3 -4 5 7 -8 -9 

【样例输出】

12

c++代码

#include <iostream>
using namespace std;

int max_sum(int n,int a[]){
   int b=0,max;
   max=0;
   for (int i=0;i<n;i++)
   {
   		if (b>0) b+=a[i];
   		else b=a[i];
   		if(b>max) max=b;
	} 
    return max;
}

int main() {
    int n; 
    int a[100]; 
    cin>>n;
    for (int i=0; i<n; i++){
        cin>>a[i];
    }
    cout<<max_sum(n,a)<<endl;
}

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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