版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ShellDawn/article/details/88900288
递归比较左右子树,维护flag,并返回深度。
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
int l = array.size();
vector<int> dp;
dp.push_back(0);
int ans = 0;
for(int i=1;i<=l;i++){
printf("%d\n",dp[i-1]);
if(dp[i-1]<=0) dp.push_back(array[i-1]);
else dp.push_back(dp[i-1]+array[i-1]);
ans = max(ans,dp[i]);
}
return ans;
}
};
int main(){
int a[] = {1,-2,3,10,-4,7,2,-5};
vector<int> v(a,a+8);
Solution S;
printf("%d\n",S.FindGreatestSumOfSubArray(v));
return 0;
}