函数在int [] []中查找连续区域

时间:2016-11-20 22:07:48

标签: java arrays int

我有一个结构int[][],大小固定。它充满了自然数。一个例子:

  

0 0 0 0 0 0 0
  1 2 6 9 0 3 4
  3 1 3 4 5 6 0
  1 2 3 0 2 1 1
  1 2 0 0 0 1 0

我的目标是检查这个结构中有多少个连续的零区域。在这个例子中,答案应该是4,这是一些区域 (不考虑对角线) 示例解决方案:
第一圈:

  

0 0 0 0 0 0 0
  1 2 6 9 0 3 4
  3 1 3 4 5 6 0
  1 2 3 0 2 1 1
  1 2 0 0 0 1 0

第二个:

  

0 0 0 0 0 0 0
  1 2 6 9 0 3 4
  3 1 3 4 5 6 0
  1 2 3 0 2 1 1
  1 2 0 0 0 1 0

第三个:

  

0 0 0 0 0 0 0
  1 2 6 9 0 3 4
  3 1 3 4 5 6 0
  1 2 3 0 2 1 1   1 2 0 0 0 1 0

第四个:

  

0 0 0 0 0 0 0
  1 2 6 9 0 3 4
  3 1 3 4 5 6 0
  1 2 3 0 2 1 1
  1 2 0 0 0 1 0

1 个答案:

答案 0 :(得分:0)

我不打算写这个功能并破坏你的乐趣,但你可以这样做:

  • 查找数据中的每个零。将其标记为自己的区域
  • 当您的区域分配发生变化时,请执行以下操作:
    • 对于每个零,检查旁边是否有零。如果存在且属于另一个区域,则将两者分配到同一区域。

当区域分配不再变化时,您可以计算唯一的分配。