如何确定是否可以在阵列中达到零?

时间:2017-07-08 05:04:20

标签: stack queue depth-first-search breadth-first-search

我得到一个数组,arr = [3,4,2,3,0,3,1,2,1]和一个startIndex。当我在索引i时,我可以通过arr [i]向左或向右移动。我的任务是找到我能否达到0。 任何人都可以帮我解决这个问题吗? 谢谢:))

1 个答案:

答案 0 :(得分:0)

解决方案是在图表中进行路径查找

这里真正的问题是没有得到解决方案,它正确地模拟了问题。解决方案很简单。

首先,你没有一个阵列。您拥有的是图表。如果您从未做过任何graph theory,那将会有点复杂。

数组中的每个索引都是node。存储在该索引处的值使您lines将其链接到其他节点,箭头指示移动方向。例如,您指定的数组为您提供以下图形: enter image description here

每个节点都标有它在数组中的位置(0到8)。 您要访问的节点为红色。 这假设一旦到达数组的末尾就可以向前移动到数组的开头,反之亦然。

您现在要做的就是找到4startIndex之间的路径。您可以应用Dijkstra's algorithm来查找最短路径。

大。现在我该如何制作图表?

如果你对如何实现图表没有任何想法,you can check this stackoverflow question用于java实现。

您可以轻松找到任何其他语言的实现。