python - 关于使用 BFS 使用 Python 查找最短路径的问题
问题描述
我对 python 很陌生,目前正在解决来自hackerearth 的问题。(https://www.hackerearth.com/practice/algorithms/graphs/breadth-first-search/practice-problems/algorithm/monk-and-the-islands/)但需要一些帮助。问题是使用 BFS 算法找到从起始节点到结束节点的最短距离。我尝试了几种不同的方法,例如保持遍历节点的计数器并尝试遍历存储输入但没有成功的字典。任何帮助是极大的赞赏。
from collections import defaultdict
for i in range(int(input())):
x = defaultdict(list)
number_of_islands, number_of_pairs = list(map(int, input().split()))
for i in range(number_of_pairs):
island1, island2 = list(map(int, input().split()))
x[island1].append(island2)
x[island2].append(island1)
startNode = min(x)
visitedNodes = []
queue = [startNode]
while queue:
(currentNode) = queue.pop(0)
print('current', currentNode) # display currentNode
print('visited', visitedNodes) # display visitedNodes
visitedNodes.append(currentNode)
for nextNode in x[currentNode]:
if nextNode not in visitedNodes:
queue.append(nextNode)
解决方案
推荐阅读
- python - 在 Python 上的 R32G32B32A32_UINT 中打开并写入一个 .dds 文件
- visual-studio - Xamarin.Forms iOS 构建错误对象引用未设置为对象的实例
- wordpress - WpForms:提交时动态更改通知电子邮件?
- kotlin - Kotlin:密封类中的泛型
- python - 获取渲染到浏览器的 Minio 文件
- .net - 如何以编程方式在 dotnet pack 之前编辑文件?
- angular - 如何将响应从一个组件发送到另一个 Angular?
- php - 此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8
- acumatica - 带有扩展库的自定义按钮
- azure - 如何以其他用户身份向拉取请求添加评论?