题目
题目分析&&解题思路
比较简单的求和问题,刚开始想暴力求解,但是看到测试数据觉得肯定会TLE,遂放弃这种想法。换了一种思路,就是输入一个数据,处理一个数据,这样复杂度低还节省内存。就是先将输入的数据加到当前子列和sum中,如果sum>maxsum(最大子列和),更新maxsum;如果sum<0,则直接将sum置0。
代码实现
早点看到这么多编译器的话,我就用c++写了。。。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int k,temp;
scanf("%d",&k);//输入数据个数
int sum=0;//当前子列之和
int maxsum=0;//最大子列和
for(int i=0; i<k; ++i)
{
scanf("%d",&temp);//输入整数
sum+=temp;
if(sum>maxsum)
maxsum=sum;
if(sum<0)
sum=0;
}
printf("%d\n",maxsum);
return 0;
}