0

基本图

在这里,我驾驶简单的图表来解释问题。问题由城市之间的 M 条道路和总共 N 个城市组成。算法应该以所有可能的方式以最少的资源使用将城市 A 带到城市 C。(CPU 和 RAM)算法应该返回所有可能的替代方式或每个请求的一种替代方式。不推荐使用递归方式,因为我们正在讨论数百万种替代方式。我有一个迭代方式的解决方案,但我正在寻找更优化的方式。

迭代解决方案

可以通过乘以城市之间的道路总数来计算替代方式的总数。

for n 0...T
    find_alternative(n, array_of_total_number_of_roads)

根据 array_of_total_number_of_roads 的 find_alternative 函数计算替代道路的索引数组。在计算二进制数时,我们总是使用相同的修改数(2),但在我的情况下,我通过使用 total_number_of_roads 的索引作为非静态修改数来计算相应的索引。

一个例子

find_alternative(0, [3,1,2]) -> 0,0,0
find_alternative(1, [3,1,2]) -> 0,0,1
find_alternative(2, [3,1,2]) -> 1,0,0
find_alternative(3, [3,1,2]) -> 1,0,1
find_alternative(4, [3,1,2]) -> 2,0,0
find_alternative(5, [3,1,2]) -> 2,0,1

所有路线都经过计算,并且以这种方式工作,但我只是好奇也许存在更好的方法:)

4

0 回答 0