【问题标题】:How can the shortest path between two nodes in a balanced binary tree be affected by path 'weight'?平衡二叉树中两个节点之间的最短路径如何受到路径“权重”的影响?
【发布时间】:2014-08-28 08:41:55
【问题描述】:

我正在学习 Udacity 的在线算法入门课程。

在最后的评估中有一个问题如下:

在 Andrew Goldberg 的采访中描述的最短路径预言中, 每个节点都有一个标签,它是节点中其他一些节点的列表 网络及其到这些节点的距离。这些列表具有 属性:

(1) 对于网络中的任何一对节点 (x,y),它们的列表将有 至少有一个节点 z 是公共的

(2) 从 x 到 y 的最短路径将经过 z。给定一个图 G 这是一个平衡的二叉树,预处理图以创建这样的 每个节点的标签。注意每个标签中列表的大小 对于大小为 n 的图形,不应大于 log n。

The full question can be found here.

鉴于平衡二叉树的约束和大小不应大于 log n 的提示,直觉上似乎特定节点的标签将包含其所有父节点(以及可选的自身,如果它不是)一片叶子)。

但是问题中的一些额外的讲师注释添加了:

编写处理加权图的解决方案。注意测试 给定,所有边的权重都是 1 - 这不是特别 有趣。

所以我的问题是:

二叉树中两个节点之间的最短路径如何受到路径是否有权重的影响?

肯定在二叉树中,两个节点之间的最短路径是唯一的简单路径,并且不受任何加权的影响? (除非权重可以是负数并且路径不必简单,在这种情况下没有最短路径?)

我的基本解决方案适用于问题中提供的简单测试,但未能通过没有反馈的自动评分器。

我显然误会了什么,但是……

【问题讨论】:

    标签: algorithm binary-tree shortest-path


    【解决方案1】:

    好的,所以我认为我最初的反应和显而易见的答案是正确的:

    正权重不能影响二叉树中两个节点之间的最短路径

    另一方面,权重显然确实会影响二叉树中两个节点之间的最短“距离”,而不是简单地计算节点之间的“距离”作为跳数。

    这就是 udacity 指令的目的。 似乎这个使用加权二叉树的指令只是为了启用代码的正确自动分级,该代码依赖于使用标签来计算确切的最短“距离”(受权重影响)为与最短的路径(节点列表)相反。

    一旦我修改了我的算法以考虑到这一点并输出正确的距离,它就通过了分级机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-15
      • 1970-01-01
      相关资源
      最近更新 更多