编一道很难的c++一维数组题,并有10个输入输出样例,与正确代码
时间: 2023-08-07 20:02:50 浏览: 84
题目描述:
给定一个长度为n的一维数组a,定义一个子数组为a中连续的一段元素的集合,求a中所有子数组的和的最大值。
输入格式:
第一行包含一个整数n。
第二行包含n个整数,表示数组a。
输出格式:
输出一个整数,表示a中所有子数组的和的最大值。
输入样例:
5
1 -2 3 -2 4
输出样例:
5
输入样例2:
6
-2 -1 -3 4 -1 2
输出样例2:
5
输入样例3:
3
-2 11 -4
输出样例3:
11
输入样例4:
4
-1 -2 -3 -4
输出样例4:
-1
输入样例5:
1
-1
输出样例5:
-1
输入样例6:
2
-1 -2
输出样例6:
-1
输入样例7:
2
2 3
输出样例7:
5
输入样例8:
4
-1 -2 3 -4
输出样例8:
3
输入样例9:
4
-1 3 -2 4
输出样例9:
5
输入样例10:
4
-1 -2 -3 4
输出样例10:
4
正确代码:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
cin >> a[i];
int sum = a[0], ans = a[0];
for (int i = 1; i < n; i++)
{
sum = max(a[i], sum + a[i]);
ans = max(ans, sum);
}
cout << ans << endl;
return 0;
}
```
输入输出样例:
输入样例1:
5
1 -2 3 -2 4
输出样例1:
5
输入样例2:
6
-2 -1 -3 4 -1 2
输出样例2:
5
输入样例3:
3
-2 11 -4
输出样例3:
11
输入样例4:
4
-1 -2 -3 -4
输出样例4:
-1
输入样例5:
1
-1
输出样例5:
-1
输入样例6:
2
-1 -2
输出样例6:
-1
输入样例7:
2
2 3
输出样例7:
5
输入样例8:
4
-1 -2 3 -4
输出样例8:
3
输入样例9:
4
-1 3 -2 4
输出样例9:
5
输入样例10:
4
-1 -2 -3 4
输出样例10:
4
阅读全文