首页 > 解决方案 > 获取数组中的所有路径

问题描述

我有一个结构如下的列表:

s = [
  [
    [[0, 1, 1], [0, 0, 0]],
    [[0, 0, 1], [0, 1, 0]],
    [[0, 0, 0], [0, 1, 1]],
    [[1, 0, 0], [0, 0, 0]],
    [[0, 0, 0], [1, 0, 0]],
    [[1, 0, 0], [0, 0, 0]],
  ],
  [  
    [[1, 0, 0], [0, 0, 0]],
    [[0, 0, 0], [1, 0, 0]],
    [[0, 1, 1], [0, 0, 0]],
    [[0, 0, 1], [0, 1, 0]],
    [[0, 1, 0], [0, 0, 1]],
    [[0, 0, 0], [0, 1, 1]]
  ],
  # And so on
]

对于第一个索引 处的每个元素s[0],如果第二个子数组s[0][i][1]匹配 中的相应第一个元素s[1],那么我们有一个路径,或者路径的一部分。很复杂,我举个例子:

s = [
  [
    [[0, 1, 1], *[0, 0, 0]*], <---- This goes to multiple possibilities
    [[0, 0, 1], [0, 1, 0]],
    [[0, 0, 0], [0, 1, 1]],
    [[1, 0, 0], [0, 0, 0]],
    [[0, 0, 0], [1, 0, 0]],
    [[1, 0, 0], [0, 0, 0]],
  ],
  [  
    [[1, 0, 0], [0, 0, 0]],
    [*[0, 0, 0]*, [1, 0, 0]], <- here
    [[0, 1, 1], [0, 0, 0]],
    [[0, 0, 1], [0, 1, 0]],
    [[0, 1, 0], [0, 0, 1]],
    [*[0, 0, 0]*, [0, 1, 1]] <- and here
  ],
  # And so on
]

如何找到每个给定元素的路径数量?

标签: algorithm

解决方案


推荐阅读