這是一個家庭作業問題。我正在爲Java中的經典n-Queens
問題編寫解決方案。我的程序看起來像this,但它返回所有合法皇后展示位置的集合,而不是將它們打印出來。我代表皇后放置爲int[]
,並在執行時使用HashSet<int[]>
返回Set<int[]>
。 (由於展示位置的順序並不重要,因此此處適用Set
)。關於經典n-Queens在Java中的實現問題
問題是Java陣列不會覆蓋hashCode
,而不同的數組實例具有不同的哈希碼。
我可以編寫一個包裝類QueensPlacements
,它包含一個數組並覆蓋hashCode
與Arrays.deepHashCode
,並返回Set<QueensPlacement>
。然而它看起來冗長而不雅。任何人都可以提出更好的解決方案嗎
包裝類可能更好 - 它不是不雅觀,因爲Set使事情更明顯,然後設置。就像hashcode一樣,你會用int []來解決其他問題。例如,你如何確定只有n個皇后 - 大小是n? –
Fakrudeen
2010-12-10 11:42:03