题目内容:给定一定数量的数字串,计算此数字串的最大子串和(未限定个数)
具体代码实现:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int num,tmp;
cout<<"请输入元素个数:"<<endl;
cin>>num;
vector<int>ivec;
for(int i=0; i<num; i++)
{
cin>>tmp;
ivec.push_back(tmp);
}
vector<int>tmpivec;
for(int i=0; i<ivec.size(); i++)
{
if(i==0)
{
tmpivec.push_back(ivec[0]);
continue;
}
if(ivec[i]+tmpivec[i-1]>ivec[i])
{
tmpivec.push_back(ivec[i]+tmpivec[i-1]);
}
else
{
tmpivec.push_back(ivec[i]);
}
}
cout<<*max_element(tmpivec.begin(),tmpivec.end()); //找出vector中的最大值
return 0;
}