树形 DP
自下而上的 DFS
经典博客:https://blog.csdn.net/weixin_43923436/article/details/116701317
algsup
这个作者很懒,什么都没留下…
展开
-
[树形dp]leetcode814:二叉树剪枝(medium)
代码】[树形dp]leetcode814二叉树剪枝(medium)原创 2022-07-21 17:16:47 · 214 阅读 · 0 评论 -
[树形dp]leetcode337:打家劫舍 III(medium)
题目: 题解: 与 AcWing 285. 没有上司的舞会 一样,使用树形 dp 即可。 代码如下: class Solution { public: // 原题:没有上司的舞会 int rob(TreeNode* root) { auto res=dfs(root); return max(res[0],res[1]); } // v[0]表示不选当前节点的金额最大值,v[1]表示选择当前节点的金额最大值 vector<原创 2022-05-20 19:05:27 · 130 阅读 · 0 评论 -
[树形dp]leetcode543:二叉树的直径(easy)
题目: 题解: 思路:根节点左子树的最大深度+根节点右子树的最大深度=直径。 代码如下: class Solution { public: int res=0; //思路:左子树的最大深度+右子树的最大深度为二叉树的直径 //这个递归可以想象成记忆化dfs或者说分治法,只有当最小子问题解决时(达到叶子节点时,深度为1),总问题才能得到解决(左子树的深度+右子树的深...原创 2020-01-09 23:22:42 · 282 阅读 · 0 评论 -
[树形dp]leetcode2265:统计值等于子树平均值的节点数(medium)
题目: 题解: 使用自下而上的 DFS 就行了,也就是所谓的树形 DP。 代码如下: using PII = pair<int,int>; #define x first #define y second class Solution { public: // 采用自底向上的递归,利用当前节点的左右子树的返回值,来计算当前节点计算的平均值是否符合题意 int res=0; int averageOfSubtree(TreeNode* root) {原创 2022-05-20 15:58:47 · 149 阅读 · 0 评论