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

标签 java arrays algorithm matrix

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

例如,在这样的矩阵中:

0 2 3 
1 2 3 
1 2 0

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

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

123
123
023
123
120
020

最佳答案

您可以直接将每个此类数组映射到数字排列 (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

关于java - 查找矩阵中所有可能的唯一数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656707/

相关文章:

java - Java简介: How to use an if statment when a string doesn't exist

java - 如何使用与边框不同的颜色填充 2D 数组的中心?

javascript - 将并排的 Rects 连接到一个大 Rect

计算最多 18 位的素数优化

java - 将列表传递给 HQL 或 SQL 中的 IN 子句?

java - 将按钮添加到 ArrayList 的指定索引处

java - 标记 "="出现语法错误,此标记后应有表达式

javascript - 怀疑范围问题

python - 如何使用逐元素操作获取多个 numpy 保存数组的均值和标准差

java - 如何从原始号码获取新号码?