在矩阵中查找所有可能的唯一数组

时间:2011-10-05 04:26:19

标签: java arrays algorithm matrix

当给定方形矩阵时,在不使用每个数组中任何行/列的多个元素的情况下,找到其中所有可能数组的最佳方法是什么?

例如,在像这样的矩阵中:

0 2 3 
1 2 3 
1 2 0

然后会像这样经历它: enter image description here

然后它将输出以下数组列表:

123
123
023
123
120
020

1 个答案:

答案 0 :(得分:1)

您可以直接将每个此类数组映射到数字的排列(0 .. size-1)。为了向您展示这是如何工作的,排列(2,1,0)映射到3个坐标(2,0), (1,1), (0,2)。你提供的6个例子是

(2,1,0)  (1,2,0)  (0,2,1)

(2,0,1)  (1,0,2)  (0,1,2)

为了解释映射,我们先进行第一次排列(2,1,0) --> (2,0), (1,1), (0,2)。然后,您要使用的值为array[2][0], array[1][1], array[0][2]

所以现在的问题是如何生成每个排列。有一些算法,其中一个在java中实现:http://www.merriampark.com/perm.htm

相关问题