我正在尝试实现一个python函数,它检查两个给定节点(public String hexToBin(String hex) throws NumberFormatException {
String bin = Integer.toBinaryString(Integer.parseInt(hex, 16));
int len = bin.size();
return len == 8 ? bin : "00000000".substring(len - 8) + bin;
}
和start
)是否在Graph中的某个距离内(让我们说dist = 4)。
一种粗略的方法是在两个节点之间找到最短路径(使用Breadth First Algorithm),然后检查最短路径的长度是否小于(或等于)规定距离(dist = 4) )。但这显然不是最好的解决方案,并且有很多开销。从这两个python函数开始,你能指导我如何修改这些函数来实现这样的功能吗?
正如我所提到的,我对找到的路径本身并不感兴趣。我们所有的兴趣在于两个节点是否 彼此之间的规定距离。 goal
或YES
返回标记就足够了。
NO
答案 0 :(得分:0)
您无需找到它们之间的最短距离。您所要做的就是在所需的dist
之后切断您的bfs。如果您未在截止前访问目标节点,则开始与目标之间的距离大于dist
。您也可以以类似的方式使用dfs。当深度大于dist
时,切断搜索。此搜索方法称为深度限制搜索。