如何在多个方向上找到路径

我有一个[] [] int切片,我想沿着它的路径直到再次到达原点, </ p>

我尝试了递归函数,但无法通过已经部分访问的路径。</ p>

数组:</ p> \ n

  arr:= [] [] int {
[] int {1,0,0,1},
[] int {0,2,0,1},
[] int {1,0,3,0},
[] int {0,0,1,4},
}
</ code> </ pre>

对角线 是元素编号,斜对角线是链接。 对角线下方(例如)将显示arr [3] [3]是arr [2] [2]的子级,而上方将显示arr [3] [3]是arr [1] [1]和arr的父级 [0] [0]。</ p>

看元素4(arr [3] [3])我想向上搜索,直到得到 1 </ code>(arr [1] [3]),移至arr [1] [1],然后向下搜索并再次找不到 1 </ code>。 然后,函数应移至arr [0] [3],从arr [0] [0]向下搜索到arr [2] [0],从arr [2] [2]向下移动到arr [3] [2 ],然后再次找到arr [3] [3]。</ p>

因此输出:</ p>

  [] int {4,1,3,  4} //对角线上甚至是位置上的实际元素
</ code> </ pre>
</ div>

展开原文

原文

I have a [][]int slice that I want to follow a path until I get to the origin again, if possible.

I've tried a recursive function, but cannot get past a path already partially visited.

Array:

arr := [][]int{
  []int{1, 0, 0, 1},
  []int{0, 2, 0, 1},
  []int{1, 0, 3, 0},
  []int{0, 0, 1, 4},
}

The diagonal is the element number and the off diagonal is the link. Below the diagonal (e.g.) will show arr[3][3] is a child of arr[2][2] and above will show arr[3][3] is a parent of arr[1][1] and arr[0][0].

Looking at element 4 (arr[3][3]) I want to search upward until I get a 1 (arr[1][3]), move to arr[1][1] and then search down and not finding a 1 again. Then the function should move to arr[0][3], search down from arr[0][0] to arr[2][0], move down from arr[2][2] to arr[3][2] and find arr[3][3] again.

Thus outputting:

[]int{4, 1, 3, 4} // the actual element on the diagonal or even just the position

douxiajia6104
douxiajia6104 在en.wikipedia.org/wiki/Pathfinding上检查算法
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐