【发布时间】:2015-01-10 21:22:18
【问题描述】:
我目前正在尝试用 Java 计划/编写数独求解器。 目标是让我尽可能多地学习该语言(作为初学者)。
求解器将不是“蛮力”求解器,而是一个执行逻辑算法的函数系统,能够由人类完成。
但是我使用哪种数据类型?
- ArrayList 的 ArrayList
- 二维数组
- 别的东西
我知道在很多情况下它归结为偏好和特性,但是,因为我希望实现一些“求解”函数,所以我需要一个可以快速有效地迭代的二维数据类型,并且避免重复代码(例如嵌套的 for 循环)。
哪种数据类型提供最佳的 2D 迭代?
【问题讨论】:
-
如果你想避免嵌套的for循环,你可以试试一维数组。
-
对于数独、井字游戏等类型的游戏,二维数组始终是您的最佳选择(更像更简单)。在 C++ 中它甚至更酷,因为内存块可以连续分配。