java - 查找二维阵列中的连接单元

标签 java arrays

编辑:解决,请参阅下面的我的帖子。

我正在用Java实现棋盘游戏,需要开发一种算法来从2d数组中的单个单元中找到“连接”单元的数量。

编辑:通过连接,我的意思是与我在其中开始的单元格具有相同的值。如果该方法调用值为x的单元格,则需要找到所有与之共享一条边(而不是对角线)的单元。

IE,如果我有一个由1和0组成的二维数组,我想找到我所选择的单个单元格中连接单元数最多的单元:

[1][1][1][0]
[1][0][1][1]
[1][0][0][1]
[1][0][0][1]


在[0] [0]上运行该算法将返回10,因为有6个1沿右路径下降,有3个沿左路径下降。

是否有解决此问题的已知方法?如果没有,您将如何解决呢?我正在绞尽脑汁,似乎找不到出路。任何建议表示赞赏。

最佳答案

您可能想看看一些路径查找算法。

最常见和最快的是Dijkstra's Algorithm

这个概念很容易理解和实现。代替查找路径,您可以在要搜索的区域周围找到相连的1或0。

看一看用Dijkstra算法在Java中对2D数组进行路径查找。 Path Finding

通过查看周围的“节点”(1或0),您可以找到“连接”部分。

关于java - 查找二维阵列中的连接单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716926/

相关文章:

java.sql.SQLSyntaxErrorException : Unknown column 'column_name' in 'field list' - mappings in entity are the same in as database

java - Roguelike 游戏有闪烁的绘图

java - 从 MyBatis @Select 查询中捕获参数化字符串

php - 如何在 php 中访问一个 json 数组?

arrays - 如何从powershell中的对象列表中获取特定字段的列表

javascript - 在 Javascript/jQuery 中解析 PHP 序列化数组

java - 无法加载 JVMCI 共享库 : libcrypt. so.1: 无法打开共享对象文件: 没有这样的文件或目录

java - 如何使用等时元素创建 JavaFX 转换?

javascript - 根据数组 JS 中的值创建按钮

c# - 从字节数组转换为位数组