我有一个0和1的矩阵,我试图在其中找到最大矩形区域的集合。例如,在下面的矩阵A中:
array([
[1, 1, 1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]])
答案应该是:
A[0:8, 6:9]
A[0:4, 3:9]
A[0, 0:9]
A[7, 5:9]
我试图通过依次应用maximal rectangle area problem
解决问题但是我无法提出删除最大矩形的规则,但是不能删除在所有设置下都可以使用的下一个最大矩形! 这可能不是最血统的主意,因此,如果有更好的方法解决此问题,我将不胜感激!