我一直在努力寻找某种算法来解决我遇到的问题。我遇到的最接近的是bin打包算法,但我不认为它很安静,我正在寻找。
此文档是我的问题和预期输出的图形表示: http://www.scribd.com/doc/90871434/Rectangles
我的想法在哪里找到最低(高度)的矩形,并创建一个适合其余矩形宽度的矩形,并通过一些递归来计算其余部分。
我基本上要做的是找到最小量的垂直堆叠矩形,给定N个水平放置的矩形。
在Java中执行此操作我有一个带有输入矩形的HashMap。
任何想法,代码,链接?感谢
答案 0 :(得分:2)
找到最小的矩形。
从中创建第一个生成的矩形。
确定剩余的矩形。
将算法应用于所有连续的剩余矩形组。
答案 1 :(得分:1)
我认为你应该使用分而治之。
当您找到最低的矩形时,您也会分割数据集。下一个矩形或者只在左侧或右侧设置。这是递归的。