/*
*2014-09-30
*求一个数组的连续最大和
*用动态规划求最优解
*/
#include<iostream>
using namespace std;
int main()
{
const int size = 9;
int array[] = {3,-1,4,6,-6,10,-1,-1,2};
int max[size];
max[0] = array[0];
int latter_sum = 0;
for(int i = 0; i < size; i++)
{
latter_sum += array[i];
if(latter_sum >= 0)
{
max[i] = max[i - 1] + latter_sum > array[i] ? max[i - 1] + latter_sum: array[i];
}
else
max[i] = max[i - 1] > array[i] ? max[i - 1]: array[i];
if(max[i] != max[i - 1])
latter_sum = 0;
}
for(int j = 0; j < size; j++)
cout << max[j] << endl;
system("pause");
return 0;
}
动态规划求一个数组的连续最大和
最新推荐文章于 2022-06-10 11:14:01 发布