由矩形组成的形状最少有多少个矩形?

2024-01-07

我不确定是否有算法可以解决这个问题。

将给定数量的矩形从左到右水平并排放置以形成一个形状。您将获得每个的宽度和高度。

您如何确定覆盖整个形状所需的最小矩形数量? 即,您将如何使用尽可能少的矩形重新绘制该形状?

我只能考虑尝试挤压尽可能多的大矩形,但这似乎效率低下。 有任何想法吗?

编辑: 给你一个数字 n ,然后是 n 个尺寸: 2 1 3 2 5

上面将有两个彼此相邻的尺寸为 1x3 和 2x5 的矩形。 我想知道在给定的矩形不能重叠的情况下,我最少需要多少个矩形来重新创建该形状。


由于您的矩形对齐得很好,因此问题变得更容易。您可以简单地从下到上创建矩形。每次执行此操作时,它都会创建新的形状进行检查。好处是,你所有的新形状都会also基本对齐,您可以根据需要重复。


首先,您要找到最小高度的矩形。制作一个具有相同高度的矩形,宽度作为形状的总宽度。从形状底部剪掉那么多。

您将留下多种形状。对于每个人,做同样的事情。

Finding the minimum height rectangle should be O(n). Since you do that for each group, worst case is all different heights. Totals out to O(n2).

例如:

在图像中,每个形状的最小值以绿色突出显示。生成的矩形是蓝色的,位于右侧。所需矩形的总数是图像中蓝色矩形的总数,7。


请注意,我解释这一点时就好像这些是物理矩形一样。在代码中,您可以完全取消宽度,因为它根本不重要,除非您想输出矩形而不是仅仅计算它需要多少个。

您还可以将“制作一个矩形并将其从形状中剪切”减少为简单地从构成该形状/子形状的每个矩形中减去高度。执行此操作后,具有 +ve 高度的形状的每个连续部分将组成一个新的子形状。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由矩形组成的形状最少有多少个矩形? 的相关文章

  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 找到一系列间隔的最有效分组

    我有一个应用程序 其中有一系列不重叠的固定宽度间隔 每个间隔都有一个给定的键 每个间隔具有相同的宽度 并且可以存在连续的间隔 本质上 我想以最小化单独间隔的数量的方式对间隔和键进行分组 这可以通过合并具有相同键的连续间隔或查找匹配间隔并将它
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 如何求小于给定数的最大2次方

    我需要找到小于给定数字的最大 2 次幂 我陷入困境 找不到任何解决方案 Code public class MathPow public int largestPowerOf2 int n int res 2 while res lt n
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 分而治之策略来确定列表中是否有超过 1/3 的相同元素

    我正在使用分治算法来确定列表中是否有超过 1 3 的元素相同 例如 1 2 3 4 不 所有元素都是唯一的 1 1 2 4 5 是的 其中 2 个是相同的 没有排序 是否有分而治之的策略 我陷入了如何划分的困境 def is valid i
  • 7 张牌扑克手牌评估器

    有谁知道评估 7 张牌扑克牌的快速算法吗 这比简单地暴力检查 7 张牌中每 21 个 5 张牌的组合更有效 Cheers Pete 我写了一篇JavaScript 核心评估方法仅使用位操作 因此速度非常快 考虑到这一点 查看 21 种组合还
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 使用并集查找(又名不相交集)检测图是否是二分图

    我正在 Spoj 上做一个问题 基本上可以简化为检测图是否是二分图 我正在尝试使用 dfs 为图表着色 但它太慢了 有人评论这个 没有 bfs 没有 dfs 没有二部图 简单的并查集就可以做到 确实速度很快 提示 1 偶数长度的环不会影响两
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • Python 中使用 geoJSON 绘制多边形中的点

    我有一个包含大量多边形 特别是人口普查区 的 geoJSON 数据库 并且有很多长的纬度点 我希望存在一个有效的 Python 代码来识别给定坐标位于哪个人口普查区 但是到目前为止我的谷歌搜索还没有透露任何信息 Thanks 我发现了一个有
  • 具有 2 个属性的背包算法。如何在 3d 数组中实现它?

    当有超过 1 个属性时 我无法理解背包问题 当有 1 个属性时 我必须编写一个使用具有 2 个属性的背包算法的程序 老师告诉我们 它必须在 3d 数组中完成 错误的实现将导致 O 2 n 处理时间 我无法想象这样的数组会是什么样子 假设这是
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 照片马赛克算法。如何在给定基本图像和瓷砖列表的情况下创建马赛克照片?

    Hy 我要做的是创建一个程序 使用 C 或 C 它将 24 位 像素位图和图像集合作为输入 我必须创建一个马赛克图像 类似于使用库的输入图像给定的图像 创建与输入类似的马赛克照片 到目前为止 我可以访问输入的图像像素及其颜色 但我有点卡住了
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • 如何对对象进行排序? (画家算法)

    所以我有 4 个矩形形状 我正在尝试应用排序算法 画家算法 https en wikipedia org wiki Painter 27s algorithm 来知道我需要先绘制哪些形状 在 3d 中 然后绘制哪个形状 Note 相机位于右
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo

随机推荐

  • 在 PHP 中上传图像时去除元数据

    我认识的某个网站最近将其带宽从每月 2 5 TB 升级到 3 5 TB 原因是他们最近超过了 2 5 限制 他们抱怨不知道如何降低带宽使用量 我没有看到他们考虑的一件事是 网站上显示的 JPEG 和其他图像 这是一个图像较多的网站 可以包含
  • 使用 python 的 optparse 时在帮助消息中显示换行符

    我正在使用 optparse 模块进行选项 参数解析 出于向后兼容性的原因 我无法使用 argparse 模块 如何格式化我的 Epilog 消息以便保留换行符 在下面的示例中 我希望按格式打印尾声 epi Examples usages
  • BorderColor 在 Android 上不选择 LinearGradient 颜色

    我试图创建一个圆圈 里面有一个图像 它的边框是彩色的 这就是我使用 LinearGradient 的原因 我正在使用这个指南 https codeburst io linear gradient for border color in re
  • 处理功能按键

    I have a C form with 5 buttons The users enters the information and depending on the press of a function key a specific
  • 数组内的自增运算符

    我有一个 C 程序 它使用数组执行队列操作 在该程序中 他们增加了数组内的变量 我不明白这是如何运作的 那么 请解释一下这些操作 array i array i 请解释一下这些操作 array i 第一次增量i 然后为您提供递增索引处的元素
  • C#:: 何时使用事件或从事件处理接口派生的对象集合?

    我有一个我认为是一个简单的 问题 我已经找到了几个解决方案 但我不确定该走哪条路以及 C 中的最佳实践 我有一个主对象 比如单例 在应用程序的生命周期内实例化一次 这个 MasterClass 创建了一堆新类型的对象 每次调用 Master
  • 创建带有前导零的数字序列[重复]

    这个问题在这里已经有答案了 这个问题之前已经使用 Console writelines 函数解决过 但这在我的 R 版本中不可用 而且我找不到它属于哪个包 我只是想以 xxx 格式创建一个从 0 99 到前导零的数字序列 所以我的数字应该是
  • 如何将 MongoDB 对象提取到 pandas Dataframe?

    我想从 MongoDB 集合中仅提取一个我需要的对象 有一个关于 manuelActivityInfo 对象的示例 x list coll find activities manuelActivityInfo exists True act
  • maxRequestPathLength 不在 ASP.NET 4 文档中并且不起作用

    如果我尝试在 ASP NET 应用程序中使用新的 maxRequestPathLength 设置 它将不起作用 我收到无法识别的属性错误 我尝试过在 IIS 7 中使用 ASP NET Integrated 和 Classic 应用程序池
  • 服务器端的客户端证书验证,DEPTH_ZERO_SELF_SIGNED_CERT 错误

    我正在使用节点 0 10 26 并尝试通过客户端验证建立 https 连接 服务器的代码 var https require https var fs require fs process env NODE TLS REJECT UNAUT
  • R闪亮:彩色文件输入按钮和进度条

    有没有办法上色fileInputR 中的按钮闪亮吗 看起来这是可能的 如此处所示page https github com rstudio shiny pull 602在 github 上 但是我找不到完成此操作的代码 这是一个简单的应用程
  • 尝试在新解决方案中启用 NuGet Package Restore 时出错

    尝试在我刚刚创建的新解决方案中启用包还原时出现错误 VS2012中的错误是 NuGet 包管理器 配置解决方案以还原 NuGet 时出错 构建中的包 无法从路径 NuGet Build 2 7 0 npkg 读取包 我尝试在 VS2010
  • 从日期/时间字符串获取时间

    我有一个日期值存储在变量中 我需要将值的时间部分提取到一个单独的变量中 然后从中添加 减去时间 日期变量使用 date YmdHis 设置 例如 20110805124000 表示 2011 年 8 月 5 日 12 40 00 从值 20
  • PInvoke - 从指针编组结构数组

    我正在尝试遵循以下答案这个问题 https stackoverflow com a 2403083 27494 我的结构在 C 中看起来像这样 typedef struct drive info t unsigned char drive
  • 将 Apache Cordova/PhoneGap 与 Android 2.x 结合使用

    似乎不可能为 Android 2 x 创建 PhoneGap 应用程序 是对的吗 要使用phonegap运行Android应用程序 请将您的应用程序构建为Android 4 0 3 并将最低版本设置为您想要的较低版本 基本上 Android
  • cPanel cron 作业,未指定输入文件?

    我刚刚设置了我的第一个 cron jon 来每晚运行一个股票脚本 手动运行它效果很好 它存储在 admin stock update php中 我正在运行的命令是 usr bin php q admin stock update php 但
  • 如何对类的单个枚举进行 Javadoc

    我正在为一个包含自己的枚举的类编写 Javadoc 有没有办法为各个枚举生成 Javadoc 例如 现在我有这样的事情 This documents HairColor private static enum HairColor BLACK
  • 从方法返回泛型类型的实例

    我想要一个方法getInstance它接受一个字符串值并返回一个对象实例 在方法签名中定义为泛型 def getInstance T dataStr String Option T T match case typeOf String gt
  • Avro 模式中的多态性和继承

    是否可以编写一个 Avro 模式 IDL 来生成一个扩展基类或实现接口的 Java 类 生成的 Java 类似乎扩展了org apache avro specific SpecificRecordBase 因此 工具可能是一条出路 但是 我
  • 由矩形组成的形状最少有多少个矩形?

    我不确定是否有算法可以解决这个问题 将给定数量的矩形从左到右水平并排放置以形成一个形状 您将获得每个的宽度和高度 您如何确定覆盖整个形状所需的最小矩形数量 即 您将如何使用尽可能少的矩形重新绘制该形状 我只能考虑尝试挤压尽可能多的大矩形 但