437. Path Sum III
2017-02-26 09:53
417 查看
简单DP,从下往上寻找所有为sum的情况。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: int count=0; map<int,int> updataMap(TreeNode* root,int sum) { map<int,int> newMap; if(root==NULL) return newMap; else { map<int,int> leftMap=updataMap(root->left,sum); map<int,int> rightMap=updataMap(root->right,sum); for(map<int,int>::iterator it=leftMap.begin();it!=leftMap.end();it++) newMap[it->first+root->val]+=it->second; for(map<int,int>::iterator it=rightMap.begin();it!=rightMap.end();it++) newMap[it->first+root->val]+=it->second; newMap[root->val]+=1; count+=newMap[sum]; return newMap; } } int pathSum(TreeNode* root, int sum) { map<int,int> result=updataMap(root,sum); //for(map<int,int>::iterator it=result.begin();it!=result.end();it++) // cout<<it->first<<" "<<it->second<<endl; return count; } };
相关文章推荐
- 437. Path Sum III
- Leetcode算法学习日志-437 Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- leetcode(437):Path Sum III
- 437. Path Sum III
- 437. Path Sum III
- [python]leetcode(437). Path Sum III
- LeetCode 437 Path Sum III
- 437. Path Sum III
- 437_Path_Sum_III
- LeetCode 437 Path Sum III
- LeetCode 437 Path Sum III (DFS)
- LeetCode 437 Path Sum III 题解
- 437. Path Sum III
- LeetCode "437. Path Sum III"
- [437]. Path Sum III,[687]. Longest Univalue Path
- 437. Path Sum III
- 437. Path Sum III
- 437. Path Sum III