方法一(最开始想到的):
int FindGreatestSumOfSubArray(vector<int> array)
{
int sum = 0;
int max = 0;
if (array.empty())
return 0;
max = array[0];
for (int x = 0; x < array.size(); x++)
{
for (int i = 1; i <= array.size()-x; i++)
{
sum = 0;
for (int j = x,num=0; num<i; j++,num++)
{
sum += array[j];
}
/*cout << "---: " << sum << endl;*/
if (sum>max)
{
max = sum;
}
}
}
return max;
}
方法二(优化后的):
int FindGreatestSumOfSubArray(vector<int> array)
{
int sum = 0;
int max = 0;
if (array.empty())
return 0;
max = array[0];
for (int x = 0; x < array.size(); x++)
{
sum = 0;
for (int i = 1,j=x; i <= array.size() - x; i++,j++)
{
sum += array[j];
if (sum>max)
{
max = sum;
}
}
}
return max;
}