我想在二叉树中找到K
个连接节点的最大总和。我想通过记忆这样做,但我被卡住了。
答案 0 :(得分:0)
想想问题是如何破裂的。二叉树的连接子图本身就是一棵树。特别是,子图有一个根,根的子也是树。
因此,请考虑以下相关问题。给定二叉树和特定节点X
,根据X
的子树的最大总和是多少,其中子树有N
个节点?
如果您可以通过N=1
回答N=i
的问题,那么您可以通过修复节点N=i+1
来回答X
的相同问题,选择j
来自X
左侧子节点的节点和来自i-j
右侧子节点的X
节点,可选择0<=j<=i
。这说明了动态编程所需的“最佳子问题”属性。