我有一个宽度和高度一定的容器。我有一堆块需要放在容器中,但是我需要计算这些块可以适合的最大尺寸。
例如:
为:
我猜它与此question类似,但他的代码是jquery并适用于文本。我想要伪代码或某种形式的算法如何做到这一点。
答案 0 :(得分:1)
假设,如图所示,所有块具有相同的高度和方向,您可以创建一个具有块长度的数组A
。
如果目标是在给定的边界矩形中最佳地打包块,则求解subset sum problem以找到最接近最大长度的块集而不是更大。删除第一行的那些块,然后用剩余的块重复该过程。
如果目标是找到最小(按区域)的边界矩形,那么您应该看看本文:Fast Optimizing Rectangle Packing Algorithm for Building CSS Sprites。它还涵盖了块的高度可能变化的情况。
如果块可以有不同的方向,那么问题就更难了packing problem。