【问题标题】:Match a cross in a binary matrix JAVA [closed]匹配二进制矩阵 JAVA 中的十字 [关闭]
【发布时间】:2022-11-22 08:20:40
【问题描述】:

所以我生成了一个仅包含 1 和 0 的随机矩阵。我需要找到该模式:

那么有人可以帮助我吗?

【问题讨论】:

  • 遍历 x = range(1, width-1), y = range(1, height-1)。对于每一对坐标,如果您的所有四个邻居都具有值 1,则您位于十字的中心。对于您的示例,您在迭代 (1, 1) 中只有中心单元格,并且您对每个邻居的测试都会成功,因此您将位于十字的中心。
  • @CryptoFool - 可能还需要在对角线位置有零。
  • @PM77-1 - 可能是。什么是“十字架”没有明确定义。如果这是定义,那么你是对的。这同样容易测试。
  • @CryptoFool 是的,对角线位置也需要有零

标签: java algorithm matrix


【解决方案1】:

这行得通吗?

int[][] m = new int[n][m]; // You already created it

for (int r=1; r<m.length-1; r++) {
    for (int c=1; c<m[r].length-1; c++) {
        if (m[r][c] == 1 && m[r][c-1] == 1 && m[r][c+1] == 1 && m[r-1][c] == 1 && m[r+1][c] == 1) { // The ones form a cross shape
             if (m[r-1][c-1] == 0 && m[r+1][c+1] == 0 && m[r-1][c+1] == 0 && m[r+1][c-1] == 0) {
                System.out.println("Found Cross: @ "+r+" "+c);
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 2021-07-05
    • 2016-03-06
    • 1970-01-01
    • 2020-02-10
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多