C++实现:(动态规划)
int FindGreatestSumOfSubArray(vector<int> array) {
int cursum=array[0];
int maxsum=array[0];
for(int i=1;i<array.size();i++){
cursum+=array[i];
if(cursum<array[i])
cursum=array[i];
if(cursum>maxsum)
maxsum=cursum;
}
return maxsum;
}
定义F(i)为包含array[i]的最大子数组的和,i为目前检测到的array元素下标,则
F(i)=max{F(i-1)+array[i],array[i]}
res=max{res.F(i)};