【发布时间】:2019-07-12 10:03:52
【问题描述】:
我发现了许多问题,询问如何在二维数组中找到最大的连续矩形,还有一些问题询问矩形的数量,但只有一个问题涉及查找所有数组的坐标、宽度和高度在 1 和 0 的 2D 中覆盖 1 区域所需的矩形。
问题 (Finding rectangles in a 2d block grid) 有一个解决方案,但由于它引用了一个外部代码块,所以很难理解。
我正在处理构成字母像素的二维数组:
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0
此处所需的输出类似于:
[[4,0,6,17],[7,0,16,2],[7,7,15,9],[7,15,15,17]]
每个数组都包含左上角坐标和右下角坐标(任何获取左上角和宽度和高度的方法也可以)。
有人可以为之前提出的问题或其他有效算法提供伪代码(或 Javascript),或者提供对所需步骤的更深入解释吗?
【问题讨论】:
标签: javascript arrays multidimensional-array