вот проблема связи https://leetcode.com/problems/binary-tree-maximum-path-sum/, и мое решение - я могу преобразовать из дерева в массив, поэтому я согласен использовать предзаказ tree walk, и я ссылаюсь на алгоритм kadane, чтобы найти максимальное значение в массиве, вот мой код, когда я запускаю программу, результат всегда равен нулю, но, по моему мнению, это должно быть правильно, я не могу понять, почему это не работает, и, кстати, проблема подсказка использует dfs, я не знаком с dfs, может кто-нибудь подумать об этой проблеме с помощью метода dfs и рассказать мне, как хорошо изучать dfs, какие-либо документы или заметки , видео в порядке, спасибо заранее!найти максимальную сумму пути., Которую мы можем начинать и заканчивать в любом узле в двоичном дереве.
int maxPathSum(TreeNode *root) {
vector<int>res;
int max;
if (root){
res.push_back(root->val);
maxPathSum(root->left);
maxPathSum(root->right);
}
else{
return 0;
}
max = maxpathsum1(res);
return max;
}
int maxpathsum1(vector<int>&res){
int cur,max;
int len = res.size();
cur = 0;
max = 0;
for (int i=0;i<len-1;i++){
cur = cur+res[i];
if (cur<0){
cur = 0;
}
if (max<cur){
max = cur;
}
}
return max;
}
dfs = глубина первый поиск. 90 миллионов хитов в Google, http://en.wikipedia.org/wiki/Depth-first_search, вероятно, хорошее место для начала –