连续子数组的最大和
1. 每日一练
题目描述
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和 。(测试用例仅做参考,我们会根据代码质量进行评分)
输入描述:
第一行输入整数数组的大小n。(1<=n<=1000) 第二行给出n个整数a。(-1e5<=a<=1e5)
输出描述:
输出答案
示例
输入
9
-2 1 -3 4 -1 2 1 -5 4
输出
6
2.代码
#include <stdio.h>
#include <string.h>
int main()
{
int a[1000],i,k=0,n,max;
max=0;
scanf("%d",&n);
if(n>=1&&n<=1000)
{
for ( i = 0; i < n ; i++)
{
scanf("%d",&a[i]);
}
}
for ( i = 0; i < n ; i++)
{
if(k<0)
{
k=a[i];
}
else
{
k+=a[i];
}
if(k>max)
{
max=k;
}
}
printf("%d",max);
}
3.运行结果