【问题标题】:Actions on a binary matrix二元矩阵上的动作
【发布时间】:2021-06-09 17:28:34
【问题描述】:

给出城堡的平面图,用字符串类型的二进制矩阵表示: 每个二进制代码都属于一个特定的单元格。一个单元格有四个边,因此我们按以下顺序考虑单元格的每一边:左-上-右-下,如果有墙则设置为“1”,如果没有墙则设置为“0”。您需要计算城堡中由墙壁隔开的房间数量(图中为 5 个房间)。 enter image description here enter image description here

【问题讨论】:

    标签: matrix count binary


    【解决方案1】:

    您可以使用DFS 进行二维搜索。遍历每个单元格并在尚未访问过的情况下运行 DFS。每次增加访问单元格的计数。 count 的最后一个值是房间数。

    如果网格有 N 行 M 列,则伪代码如下 -

    memset(visited, 0, sizeof(visited))
    count = 1
    for i in N
       for j in M
          if visited[i][j] == 0
            dfs(i, j, count++)
    print count
    

    【讨论】:

      猜你喜欢
      • 2016-07-12
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      相关资源
      最近更新 更多