這個問題的所有解決方案如下這樣:How to sort a 2D Matrix用於矩陣排序
在前面的問題,OP被詢問如何矩陣排序如行和列進行排序(M [i] [j] < = M [i + 1] [j]和M [i] [j] < = M [i] [j + 1])。我的答案很簡單:按照一維排列的方式對行進行排序,並對列進行排序。然後我意識到解決方案不是唯一的解決方案。
我的問題是:什麼算法可以給我們這個問題的所有解決方案?一個顯而易見的解決方案將是一個回溯算法,但我敢肯定,我們可以做的更好......對於同一陣列的解決方案
例子:
0 0 1 2
2 2 3 3
3 5 5 6
6 6 6 6
7 7 9 9
和:
0 2 3 6
0 2 5 6
1 3 5 6
2 3 6 6
7 7 9 9
和:
0 2 3 6
0 2 5 6
1 3 5 7
2 3 6 7
6 6 9 9
和:
0 2 3 6
0 2 5 6
1 3 5 7
2 3 6 9
6 6 7 9
等...
如果元素全部不同,我相信你可以使用[鉤子長度公式](http://en.wikipedia.org/wiki/Hook-length_formula#Dimension_of_a_representation)來計算解決方案,但我不知道如何當你有重複的條目時將其擴展到這種情況。 –