减少时间复杂度以计算给定数组的最大总和%n

时间:2015-03-13 08:31:04

标签: c++ arrays optimization

我试图从指定的数组中获取最大总和%n,我的代码工作正常,但是输出更大的值需要2秒以上。 我想优化我的代码:

我的代码:

void get_max(long int n,long int m,long int *a)
    {

    int i,j;
    long int cu=0;
    long int max=-1000000ll;
    for(i=0;i<n;i++)
        {
        cu=0;
        for(j=i;j<n;j++)
            {
            cu+=a[j];
            cu=cu%m;
            if(max<cu)
                max=cu;
        }
    }
    cout<<max<<"\n";
}
int main() {

    int t,i;
    long int m,n,e;
    long int a[100000];
    cin>>t;
   while(t--)
       {

       cin>>n;
       cin>>m;
       for(i=0;i<n;i++)
          {
           cin>>e;
           a[i]=e;
       }
       get_max(n,m,a);
   }
}

0 个答案:

没有答案