我在Java工作。给定矩阵NxM,我需要找到通过数组的所有可能路径。只允许沿对角线上下移动,或向右移动。示例4x4矩阵:
3 5 7 9
2 4 6 8
9 3 7 5
6 8 2 4
矩阵中的数字可以是任意值。我想通过矩阵生成所有可能的路径,从第一列中的四个数字之一开始。它只允许移动东北,东和东南。示例路线:
3-5 7 9
\
2 4 6-8
9 3 7 5
6 8 2 4
所以所有路线都包含M个数字。我使用2D数组来保存这个NxM矩阵。更多可能的路径是:
3 4 6 5
3 5 6 9
9 4 7 4
9 3 6 9
有没有办法在Java中轻松生成所有路径?
非常感谢任何帮助!
答案 0 :(得分:1)
也许您可以使用三种方法来执行此操作并递归调用它们。
goNortEast();如果N> 0,则搜索索引[N-1] [M + 1]的元素,否则当前元素将不存在元素NOrtEast,如果元素存在,这也将导致新路径。
goEast();每个元素都可以通过索引[N] [M + 1];
goSouthEast();如果元素存在,搜索索引[N + 1] [M + 1]处的元素,这也将导致新路径,
从每个元素调用这三个方法,从[0] [0]开始,然后[1] [0],依此类推。
对于[0] [0],它将调用goNorthEast [] - 将不满足条件goEast(); - index [0] [1]和goSouthEast(); index [1] [1]现在调用这三个元素的相同方法。
最后,您将从您开始的元素中获取所有可能的路径。