用于在矩形区域中排列块的Java代码

时间:2014-04-22 11:04:20

标签: java

我想将相同大小的块排列成矩形区域,如下所示

enter image description here

所以输入应该是块数,输出应该是(n1,n2,n3 ......),其中n1是第1行中的块数,依此类推....

例如,对于输入7,上面的图像输出将是(2,3,2)。

是否有一些图书馆可以实现这一目标?我想要的约束是以最小行数排列,每行具有相同的宽度。我也想要的是没有行应该包含4个以上的图像。

1 个答案:

答案 0 :(得分:1)

根据提供的信息,这将是一项自定义工作。例如,如果我刚刚给出你提到的7个街区,我可能会像你所做的那样(2,3,2)或(2,2,3)或(3,2,2)或(4,2, 1)等。

要将数学上形成良好的解决方案整合在一起,您将不得不更多地约束它。例如不超过x行,按以下顺序添加行,可以/不能在现有行之间插入新行等。

从头开始编写这种算法是可行的,但你需要限制更多的可能性,让它像你描述的那样工作。