![]() |
1
14
也许就这么简单:
它比人们乍一看所想的要复杂得多。考虑以下树:
在这种情况下,根节点甚至不在最长路径中(
因此,您必须执行以下操作:对于每个节点
然后,决定哪个组合使路径长度最大化:
|
![]() |
2
12
正确的算法是:
因为我不明白你到底在说什么。你能用手举一个例子吗?还是试着更好地解释?这样你就可以更好地理解它是否正确。 您似乎在尝试一个递归实现,基本上与刚才为二叉树简化的实现相同。但是,对于这个问题,您的代码似乎相当复杂。检查讨论 here 更简单的实现。 |
![]() |
3
2
|
![]() |
4
2
|
![]() |
5
2
|
![]() |
6
2
考虑到@phimuemue示例和@IVlad solution,我决定亲自检查一下,下面是我在python中对@IVlad solution的实现:
|
![]() |
7
1
我觉得你把事情搞得太复杂了。
弄清楚之后,检查树递归推理如下:
|
![]() |
8
1
如果,对于每个节点
对于每个终端节点(具有
现在,每个节点的h
(您需要找出是什么替换了两个“?”占位符。有一些选择使这一战略奏效。我亲自测试过。)
那么,
为了提高效率,您可以使用 memoization 或者将其转换为使用堆栈的非递归计算。 |
![]() |
9
1
嗯,如果我已经正确地理解了你的问题,这里是我的解决方案[但是在C++中(对不起)]:
|
![]() |
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 6 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 6 月前 |
![]() |
b39b332d · 使用C++标准库实现高效间隔存储 10 月前 |
![]() |
Paul C · 在维基百科上,将二叉搜索树转换为排序链表的算法是否存在错误? 10 月前 |
![]() |
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 10 月前 |
![]() |
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 11 月前 |