最大连续子数组和
动态规划,迭代求出以i结尾的最大连续和,i+1结尾的最大连续和时和前一位的状态有关,列出递推式即可求解
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
//动态规划,其实就是求最大和的连续子序列
//列出递推式,即可做,假定否f(i)是以i结尾的连续最大和
//f(i+1)=max(f(i)+array[i+1],array[i+1])
int n=array.size();
int sumMaxPre=array[0];
int sumMax=sumMaxPre;
for(int i=1;i<n;i++){
if(array[i]>array[i]+sumMaxPre){
sumMaxPre=array[i];
}
else
sumMaxPre=array[i]+sumMaxPre;
if(sumMax<sumMaxPre)
sumMax=sumMaxPre;
}
return sumMax;
}
};