douzhang1364 2019-08-20 16:27 采纳率: 0%
浏览 43

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

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
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘