【发布时间】:2014-06-16 10:31:30
【问题描述】:
我有一个小问题想要解决。我很想提出最佳解决方案,我认为递归可能是这里的最佳选择。如果您认为我的解决方案是理想的,或者您认为有更好的方法,请告诉我。
问题来了: 我有一个城市列表。我想要的算法是确定一个城市距华盛顿特区的度数。每个城市都有一个通过它的高速公路列表。如果一个城市与华盛顿特区共享任何高速公路,那么它与它的距离为 1 度。如果一个城市不与华盛顿特区共享高速公路,但与距华盛顿特区 1 度的城市共享高速公路,那么该城市与华盛顿特区的距离为 2 度。
我正在考虑创建一个高速公路列表,每条高速公路都应该有一个它所经过的所有城市的列表。然后我循环穿过所有穿过华盛顿特区的高速公路,对于每条高速公路,我查看它经过的所有城市,然后递归检查每个城市,看看最终一条高速公路会到达华盛顿特区,这样我就可以得到度数。
你会如何解决这个问题?
【问题讨论】:
-
BFS 怎么样?因此,从您探索每个邻居的原始城市开始,将度数加一。当您到达华盛顿特区时,返回学位值。
-
如果有多个度数怎么办?