最大连续子串

题目链接:http://codeup.cn/problem.php?id=3517


一开始想的是:

// MAX[J]=MAX[J-1]/MAX[J-1]+V[J]是序列的解法,不是串的解法
Max[j]=(Max[j-1]>Max[j-1]+v[j])?Max[j-1]:Max[j-1]+v[j];
// 初始化MAX[0]应该为v[0],因为连续必须包含自身。
Max[0]=v[0]>0?v[0]:0;

但是其实是:

Max[j]=(v[j]>Max[j-1]+v[j])?v[j]:Max[j-1]+v[j];

Max[0]=v[0];

完整代码:

#include
#include
using namespace std;
#define N 10000
int main(){
  int i,j,input;
  while(1){
    i=0;j=0;input=0;
    int Max[N]={0};
    vectorv;
    cin>>i;
    if(i==0){
      break;
    }
    for(j=0;jMax[j-1]+v[j])?v[j]:Max[j-1]+v[j];
    }
    i=Max[0];
    for(j=0;j

你可能感兴趣的:(最大连续子串)