1
當給定一個正方形矩陣時,如果不使用每個數組中任何行/列中的多個元素,找到其中所有可能的數組的最佳方法是什麼?在矩陣中查找所有可能的唯一數組
例如,在像這樣一個矩陣:
0 2 3
1 2 3
1 2 0
然後,它將通過它去像這樣:
然後它會輸出以下數組列表:
123
123
023
123
120
020
當給定一個正方形矩陣時,如果不使用每個數組中任何行/列中的多個元素,找到其中所有可能的數組的最佳方法是什麼?在矩陣中查找所有可能的唯一數組
例如,在像這樣一個矩陣:
0 2 3
1 2 3
1 2 0
然後,它將通過它去像這樣:
然後它會輸出以下數組列表:
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