找到适合空白空间的最大面积矩形的最有效算法是什么?
假设屏幕看起来像这样('#' 表示填充区域):
....................
..............######
##..................
.................###
.................###
#####...............
#####...............
#####...............
一个可能的解决方案是:
....................
..............######
##...++++++++++++...
.....++++++++++++###
.....++++++++++++###
#####++++++++++++...
#####++++++++++++...
#####++++++++++++...
通常我会喜欢找出解决方案。虽然这一次我想避免浪费时间自己摸索,因为这对我正在从事的项目有实际用途。有众所周知的解决方案吗?
Shog9写道:
您的输入是一个数组(正如其他响应所暗示的那样),还是一个任意大小、定位的矩形形式的遮挡列表(在处理窗口位置时可能是窗口系统中的情况)?
是的,我有一个结构可以跟踪放置在屏幕上的一组窗口。我还有一个网格,它跟踪每个边缘之间的所有区域,无论它们是空的还是填充的,以及它们的左边缘或上边缘的像素位置。我认为有一些修改的形式可以利用这个属性。你知道吗?