最大子段和(动态规划法求解)

 

#include<iostream>
#include<vector>
using namespace std;

void MaxSum(const vector<int>& v,int &sum)
{
 int b;
 int i;
 for(i=0;i<v.size();i++)
 {
  if(b>0) b+=v[i];
  else b=v[i];
  if(b>sum)
  {
   sum=b;
  }
 }
}

void main()
{
 int e;
 cout<<"输入一些列值以-9999结束输入!"<<endl;
 cin>>e;
 vector<int>v;
 while(e!=-9999)
 {
  v.push_back(e);
  cin>>e;
 }
 int sum=0;
 MaxSum(v,sum);
 cout<<sum<<endl;
}

你可能感兴趣的:(最大子段和(动态规划法求解))