结对项目1
一·设计思想
对于一个数A,若是A的左边累计数非负,那么加上A能使得值不小于A,认为累计值对整体和是有贡献的。如果前几项累计值负数,则认为有害于总和,curSum记录当前值。此时,若和大于maxSum,则用maxSum记录下来
二·出现的问题
当数组里面全部为负数时,结果总是为0
三·可能的解决方案
重新构造vector
四·源代码
对于一个数A,若是A的左边累计数非负,那么加上A能使得值不小于A,认为累计值对整体和是有贡献的。如果前几项累计值负数,则认为有害于总和,curSum记录当前值。此时,若和大于maxSum,则用maxSum记录下来
二·出现的问题
当数组里面全部为负数时,结果总是为0
三·可能的解决方案
重新构造vector
四·源代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
if(n < 1 || n > 100000)
return false;
vector<int> vec;
int temp;
while(n--)
{
cin>>temp;
vec.push_back(temp);
}
if(n == 1)
{
cout << vec[0];
return 0;
}
int maxSum = vec[0];
int Sum = vec[0];
for(int i = 1; i < vec.size(); i++)
{
if(Sum < 0)
Sum = vec[i];
else
{
Sum += vec[i];
}
if(Sum > maxSum)
maxSum = Sum;
}
cout << maxSum <<endl;
return 0;
}
五·结果截图
![](https://img2018.cnblogs.com/blog/1499973/201810/1499973-20181014160725375-525354435.png)
![](https://img2018.cnblogs.com/blog/1499973/201810/1499973-20181014160802151-1649419388.png)
六·总结
功能能实现;当元素超过10000时会出现false;
psp0
时间记录日志
![](https://img2018.cnblogs.com/blog/1499973/201810/1499973-20181014161716428-1001404024.png)
项目缺陷总结
七.实现过程