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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料