问题描述

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

比如n=3时,2*3的矩形块有3种覆盖方法:

问题思路

1. 首先拿到问题先尝试找出前几组的值,比如n=0,1,2,3,4,5,发现一些规律
2. 不难发现,这规律是按照斐波那契数列增长的规律来的
3. 思考为什么呢?
4. 其实我们会发现当我们拿到一个新的问题规模时:有两种思路可以走:从问题规模的角度去考虑1) 竖着放一个,那么此时问题的规模从n减少到n-12)横着放两个,那么此时问题的规模从n减少到n-23) 先不考虑排列组合什么乱七八糟的东西4) 此时我们发现减少了规模的问题又可以再次减少规模,此时不难发现这是一个递归的过程5)一直减少到边界条件:n=0,1,2 就停止迭代。

递归公式:
f(n)={0n=01n=12n=2f(n−1)+f(n−2)n>2f(n)=\begin{cases} 0 & n = 0 \\ 1 & n = 1\\ 2 & n = 2\\ f(n-1) + f(n-2) & n >2 \\ \end{cases} f(n)=⎩⎪⎪⎪⎨⎪⎪⎪⎧​012f(n−1)+f(n−2)​n=0n=1n=2n>2​
从减少问题规模的角度我觉得是比较好理解的,而且如果当问题改成n*k的矩阵覆盖问题也很好去改写。

code

//根据递归公式,代码就很简单了public int RectCover(int target) {if (target == 1) return 1;if (target == 2) return 2;if (target == 0) return 0;return RectCover(target-1) + RectCover(target-2);}

菜鸟刷题之路——Q5相关推荐

  1. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  2. 【Leetcode】刷题之路2(python)

    哈希映射类题目(简单题小试牛刀啦bhn) 242.有效的字母异位词 349.两个数组的交集 1002.查找常用字符 202.快乐数 383.赎金信 242. 有效的字母异位词 用python的Coun ...

  3. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

  4. 判断输入的字符串是否为回文_刷题之路(九)--判断数字是否回文

    Palindrome Number 问题简介:判断输入数字是否是回文,不是返回0,负数返回0 举例: 1: 输入: 121 输出: true 2: 输入: -121 输出: false 解释: 回文为 ...

  5. 刷题之路:DP思想(动态规划)

    dp一般用于解决决策问题,比如说你的每一步都有好几种处理方式,怎么选择使得最后的结果满足或者接近于你的预期是需要考虑的问题. 所以dp问题实际上也就是最优解的问题 一般采用的方式就是将问题拆分成若干个 ...

  6. LeetCode 刷题之路(python版)

    摘自:https://blog.csdn.net/qq_32384313/article/details/90745354 LeetCode 刷题之路(python版) 小坏wz 2019-06-02 ...

  7. 2021.5.21开始的兔系刷题之路 根据LeetCode分类进行逐个击破 培养出自己的套路~

    十二月了 再更一波 最近的题解都写在这个仓库中,另外仓库中也记录了自己学习前端过程中的收获~ 近期刷题情况-- 2021-11突然好多人看这篇XD 来更一波,依旧在保持刷题啦~ 目前是跟着一本前端算法 ...

  8. 蓝桥杯备考-刷题之路-动态规划算法(DP算法)Part1

    之前在刷力扣的时候就是浑浑噩噩的,照着评论区的答案写了一遍就万事大吉了,没有深度思考过.这次备考蓝桥杯看到DP算法的第一道题就不会,更难受的是看答案了依然完全不理解,所以决心把DP算法一次弄懂. 开始 ...

  9. Python刷题之路,怎样做才能让技术突飞猛进

    比你优秀的人比你还努力 这个世界最可悲的就是 , 比你优秀的人比你还努力 偶然的机会,通过Python认识了一位华为的文职工作人员.起初只是问我,Python初学者看什么书能快速入门.而两个月过后,她 ...

最新文章

  1. linux 中文输入法 xshall,Centos6.7下安装ibus中文输入法
  2. 解决RedHat中ifconfig命令不能使用的问题
  3. 《Spring设计思想》AOP设计思想与原理(图文并茂)
  4. 运维大数据可视化分析平台来了,枯燥运维数据也可以生动起来
  5. 收到几本书,顺便热热身
  6. QEMU/KVM原理概述
  7. Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli
  8. python全局变量修改_python中全局变量的修改
  9. Word,PDF,PPT,TXT之间的转换方法(
  10. 手写一个词云图生成器,可调形状,可调背景颜色,可调字体色系
  11. matlab实现图像处理教程,Matlab图像处理入门教程(菜鸟级)
  12. 论文中的参考文献怎么写?
  13. 推荐一些学习类APP
  14. BUUCTF-Crypto-变异凯撒解题思路
  15. SPU、SKU、ID,它们都是什么意思,三者又有什么区别和联系呢?
  16. win10浏览器闪退_win10内置浏览器闪退怎么办
  17. Java中实现原子操作
  18. 用什么软件工具可以一键添加渐入效果同时虚化边框背景呢?
  19. [小黄书后台]会员管理及微信授权登录
  20. 【资源下载】动手为王 - 整合迁移与数据恢复实践

热门文章

  1. FI和MM集成自动记账-采购收货发票校验业务-OBYC
  2. 2021-2027全球与中国成像色度计市场现状及未来发展趋势
  3. wu-database-lazy-starter(懒人数据库操作-核心增量式更新)
  4. linux开发技术栈
  5. Python Flask教程学习01
  6. BLAM源码解析(一)—— 模块初始化
  7. 有容乃大:楚庄王(第二篇
  8. 线性回归 原理及公式推导
  9. mma8653驱动编程
  10. 测试方法——因果图法和判定表法