关于Java中经典n-Queens的实现问题
这是一个家庭作业问题。我正在为Java中的经典
n-Queens
问题编写解决方案。我的程序看起来像这样,但它返回所有合法的女王位置的集合,而不是打印出来。我将女王的位置表示为int[]
并使用HashSet<int[]>
返回Set<int[]>
作为其实现。 (Set
在这里是合适的,因为放置的顺序并不重要)。
问题是Java数组不会覆盖hashCode
,并且具有相同值的不同数组实例具有不同的哈希代码。
我可以编写一个包装类QueensPlacements
,它包含一个数组并用Arrays.deepHashCode
覆盖hashCode
,并返回Set<QueensPlacement>
。然而,它似乎冗长而不雅。任何人都可以建议更好的解决方案?
没有找到相关结果
已邀请:
3 个回复
悍蕾驮苇袜
接口的标准类。您可以使用
并提供自己的比较器。
祁澈盘哼颗
?
味芯憨
,这对于概念问题并不是绝对必要的(对计算机来说无关紧要),但可能会使UI更好一些(例如不是如果以相同的顺序显示等效的展示位置,则对用户更好)。