剑指 Offer - 10 - 矩形覆盖

发布于 2024-04-09 23:53:20 字数 1100 浏览 24 评论 0

题目

POJ - 2506. Tiling 类似。

我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?

解析

覆盖 2 * n2 代表行, n 代表列)的时候,先看看假设前面已经覆盖 2 * (n-2) 之后,到 2 * n 之间还有多少种覆盖法:

  • 后面两个只有两种覆盖方法,一种是全部竖着放(实际上是从 2 * (n-1) 来的),这里注意不要认为还有一种情况是放置两个竖的,实际上放好 n-1 的情况中已经包含了那种情况;
  • 另一种就是全部横着放,也就是 n-2n 之间横着放两块 1 * 2 的矩形,如图 (2)
  • 所以 fn= fn-1 + fn-2 ,和跳台阶问题(第二题) 完全一样。

由于代码和跳台阶问题(剑指 Offer08 跳台阶) 一模一样,就不放重复的代码了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

聊慰

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文