相关疑难解决方法(0)

找到矩阵中具有某些属性的所有矩形区域

给定一个n*m矩阵,其可能的值为1,2和null:

  . . . . . 1 . .
  . 1 . . . . . 1
  . . . 2 . . . .
  . . . . 2 . . .
  1 . . . . . 1 .
  . . . . . . . .
  . . 1 . . 2 . .
  2 . . . . . . 1
Run Code Online (Sandbox Code Playgroud)

我正在寻找所有块B(包含(x0,y0)和(x1,y1)之间的所有值):

  • 包含至少一个'1'
  • 不包含'2'
  • 不是具有上述属性的另一个块的子集

例:

块

红色,绿色和蓝色区域都包含"1",没有"2",并且不是更大区域的一部分.当然,在这张图片中有超过3个这样的块.我想找到所有这些块.

找到所有这些区域的快速方法是什么?

我有一个工作强力解决方案,迭代所有可能的矩形,检查它们是否符合前两个标准; 然后迭代所有找到的矩形,删除另一个矩形中包含的所有矩形; 我可以通过先删除连续相同的行和列来加快速度.但我相当确定有一种更快的方式.

algorithm complexity-theory rectangles

7
推荐指数
1
解决办法
715
查看次数

标签 统计

algorithm ×1

complexity-theory ×1

rectangles ×1