如果可能的话,我有一个[] [] int切片,我想沿着这条路径直到再次到达原点。
我尝试了递归函数,但无法通过已经部分访问的路径。
数组:
arr := [][]int{
[]int{1, 0, 0, 1},
[]int{0, 2, 0, 1},
[]int{1, 0, 3, 0},
[]int{0, 0, 1, 4},
}
对角线是元素编号,非对角线是链接。对角线下方(例如)将显示arr [3] [3]是arr [2] [2]的子级,而上方将显示arr [3] [3]是arr [1] [1]和arr的父级[0] [0]。
看元素4(arr [3] [3]),我想向上搜索,直到得到1
(arr [1] [3]),移到arr [1] [1],然后然后向下搜索,再也找不到1
。然后,函数应移至arr [0] [3],从arr [0] [0]向下搜索到arr [2] [0],从arr [2] [2]向下移动到arr [3] [2 ],然后再次找到arr [3] [3]。
因此输出:
[]int{4, 1, 3, 4} // the actual element on the diagonal or even just the position