求连续子数组的最大和

 

 

#include
#include
using namespace std;

int FindGreatestSumOfSubArray(vector array)
    {
        int max_sum = 0;
        int this_sum = 0;
        for (size_t i = 0; i < array.size(); i++)//循环遍历数组,
        {
                    this_sum+=array[i];//从第二个元素开始叠加

                    if (this_sum>max_sum)//如果当前叠加的值比上一个叠加的值大
                    {
                        max_sum = this_sum;//此时将最大的值赋给max_num
                    }
                    else if (this_sum < 0)//如果此时叠加的值小于零,就舍弃此时的值,将其置零
                    {
                        this_sum = 0;
                    }
        }
        return max_sum;//返回最大的叠加值
}


int main()
{
    int a[] = { 1, 2, -3, 8, 7, -5, 9 };
    vectorarray(a,a+sizeof(a)/sizeof(int));
    cout << FindGreatestSumOfSubArray(array)<     system("pause");
    return 0;
}

你可能感兴趣的:(C++)