java封闭的矩形_java – 给定一些可以旋转的矩形,找到一个最小面积的封闭矩形...

这篇博客介绍了如何使用一种算法来确定一组矩形能否被封装到特定尺寸的矩形中,并找到最小的包围矩形。算法通过计算下限(最佳情况)和上限(最坏情况)来缩小搜索空间,并采用二分查找来找到解决方案。作者提到,可以通过改进方法来进一步优化下限和上限,以减少计算复杂性。该方法特别适用于宽度固定,寻找最小长度的场景。
摘要由CSDN通过智能技术生成

我使用这个算法得到了很好的结果:

编辑:

我提供的链接中描述的算法将给出一个“是”或“否”的答案,关于是否可以将给定的矩形集打包到特定的封闭矩形中.要查找最小的包围矩形,可以重复运行算法.基本上,计算包围矩形的下限和上限,然后进行二分查找以找到落在这些边界内的最小解.我假设封闭的矩形在一个维度上是固定的大小(即,宽度是恒定的,寻找最小长度,反之亦然).如果允许包围矩形的宽度和长度都变化,那么它就更难了,这可能不起作用.

计算下限和上限的简单(但天真)方法如下:

下界 – 最好的情况是所有矩形都可以完美打包而不会浪费任何空间.因此,对所有输入矩形的面积求和,并计算该区域所需的包围矩形长度.

上限 – 最坏的情况是每个矩形必须打包在一个单独的“行”上,因此对于每个输入矩形,计算min(宽度,高度)并求和(即假装输入矩形使用最小值相互堆叠)每个输入的宽度或高度,使得输入的另一个维度不超过包围矩形的宽度).

如果你更努力地工作,你可以显着改善下限和上限以减少搜索空间,但这应该给你起点.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值