【发布时间】:2015-01-09 01:04:46
【问题描述】:
二次最大连续子序列和算法
int maxSubSum2( const vector<int> & a)
{
int maxSum = 0;
for (int i = 0; i< a.size(); ++i)
{
int thisSum = 0;
for (int j = i; j < a.size(); ++j)
{
thisSum += a[j];
if (thisSum > maxSum)
maxSum = thisSum;
}
}
return maxSum;
}
我想知道是否有人可以解释该算法的工作原理?我擅长 for 循环,我只是不擅长嵌套循环。每次第 8 行的外部 for 循环运行时,“thisSum”总是 0 还是静态的?
非常感谢!我正在努力理解算法。请帮我!我非常感谢您所付出的时间和精力。
【问题讨论】:
-
您知道,这是一个非常慢的算法。有很多更快的算法。
-
thisSum不是静态的(否则它会实际上被声明为静态的)。在外循环的每次运行中,它都设置回 0。
标签: c++ algorithm scope subsequence