【发布时间】:2020-07-23 20:53:29
【问题描述】:
我已经为此苦苦挣扎了几天,而在 Python 中,没有办法为 JAVA 中的矩阵执行“int [] []”。我的第一个想法是使用 DFS 方法来耗尽路径。在程序中,我设置了递归的路径。但是,没有办法总是有一条路径,这意味着我必须迭代提供的图中的所有其他节点。我是编程新手,代码可能是湿的。
我的想法是:
- 如果当前顶点等于1,则使用DFS穷尽路径,如果有路径则计数。
- 如果当前顶点等于0,找到下一个节点,重复第一步。
这是我的代码(不完整)
def dfs_explore(graph, current_vertex, visited_x= None, visited_y = None):
if visited_x is None:
visited_x = []
if visited_x is None:
visited_y = []
stack_x = []
stack_y = []
rows = len(graph)
cols = len(graph[0]) if rows else 0
if not (visited_x and visted_y):
for x in range(cols):
for y in range(rows):
if graph[x][y] != 0:
stack_x.append(x) # the column neighbours
stack_y.append(y)
visited.append(x)
visited.append(y)
path = dfs_explore(graph, graph[x][y], visited_x, visited_y)
if path:
return path
else not path:
stack_x.pop()
stack_y.pop()
【问题讨论】:
-
对于一个非常简单的解决方案,您可以使用带有嵌套列表的 Java 代码。然后你可以保持大量代码完整,删除类型,修复循环。这可能不是最简单的方法,但应该可以。
-
你可以试试 NetworkX,见networkx.github.io/documentation/networkx-1.10/reference/…
-
寻找凸包区域。