我正在为我的算法类遇到这个问题。它在图论部分。我想我应该使用最大加权匹配。但不确定如何构建二分图。有什么建议吗?
我们给出n个大小为a1×b1的矩形。 。 。 ,a×bn。我们想 从矩形中建造最高的塔。在塔中,如果宽度为w的矩形位于宽度矩形的顶部 W” 然后我们要求w≤w' 。我们被允许旋转矩形(即,a×b矩形可以变成a b×一个矩形)。给出O(n)算法,找出最高塔的高度。 (例如,如果输入为11×11,8×2,1×10,那么解是一个高度为29 = 11 + 8 + 10的塔。)
答案 0 :(得分:2)
如果我正确理解了问题,您总是可以通过总结Math.max(ai,bi)
来找到最高塔的高度。由于您不需要构建塔,因此只有O(n)
。否则你需要O(nlogn)
(按矩形的高度排序)。