将几个矩形结构组合成一个大矩形的最佳方法是什么

What is the best way to composite several rectangle structs together into one large rectangle

假设我有 2 个矩形(originX、originY、宽度、高度)

0,0,100,100

100,100,100,100

获得包含两者的矩形的最佳方法是什么?

即:0,0,200,200

这是一张糟糕的油漆图片来说明我的意思

我现在的计划是:
1) 找到最小的原点,即return rect
的原点 2) 找到最高的originY+height,即return rect
的上界 3) 找到最高的originX+width,即return rect

的右边界

但我的问题是可能有数千个矩形,所以我想确保我有最好的解决方案

我想我很难找到解决方案,因为我的措辞很糟糕。在我看来,这类似于合成矩形——但是否有另一种方式来描述我在这里尝试做的事情?

无论如何,您都必须查看每个矩形才能找到答案。如果你连一个都不看,你可能会错过一个超出你范围的点。所以无论你能找到什么最好的解决方案都是 O(n).

由于我们正在寻找 O(n) 的解决方案,因此非常简单:只需遍历每个矩形即可。存储目前找到的最小值和最大值 x 和 y。请注意,在这种情况下,最大值 x 和 y 由 originX + widthoriginY + height 定义。遍历所有矩形后,由点 minXminYmaxXmaxY 形成的矩形将是您的解决方案。