我得到一个数组,arr = [3,4,2,3,0,3,1,2,1]和一个startIndex。当我在索引i时,我可以通过arr [i]向左或向右移动。我的任务是找到我能否达到0。 任何人都可以帮我解决这个问题吗? 谢谢:))
答案 0 :(得分:0)
这里真正的问题是没有得到解决方案,它正确地模拟了问题。解决方案很简单。
首先,你没有一个阵列。您拥有的是图表。如果您从未做过任何graph theory,那将会有点复杂。
数组中的每个索引都是node。存储在该索引处的值使您lines将其链接到其他节点,箭头指示移动方向。例如,您指定的数组为您提供以下图形:
每个节点都标有它在数组中的位置(0到8)。 您要访问的节点为红色。 这假设一旦到达数组的末尾就可以向前移动到数组的开头,反之亦然。
您现在要做的就是找到4
和startIndex
之间的路径。您可以应用Dijkstra's algorithm来查找最短路径。
如果你对如何实现图表没有任何想法,you can check this stackoverflow question用于java实现。
您可以轻松找到任何其他语言的实现。