剑指offer题解C++【10】矩形覆盖
来源:互联网 发布:在淘宝见过最污的东西 编辑:程序博客网 时间:2024/05/19 03:41
题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
解题思路
2*n的大矩形,设其横边为n,竖边为2,用n个2*1的矩形覆盖,共有arr[n]种方法;
若第一块矩形竖着放,则有arr[n-1]种;
若第一块矩形横着放,则第二块矩形也必须横着放,则有arr[n-2]种;
综上,arr[n]=arr[n-1]+arr[n-2]。
和跳台阶一样,其实也是斐波那契数列问题。
代码
class Solution {public: int rectCover(int number) { if (number <= 0) return 0; vector<int> arr(number + 1, 1); for (int i = 2; i <= number; i++){ arr[i] = arr[i - 1] + arr[i - 2]; } return arr[number]; }};
阅读全文
0 0
- 剑指offer题解C++【10】矩形覆盖
- 《剑指offer》牛客网java题解-矩形覆盖
- 剑指offer 10 矩形覆盖
- 剑指offer--矩形覆盖
- 剑指offer--矩形覆盖
- 《剑指offer》矩形覆盖
- 剑指offer 矩形覆盖
- 《剑指offer》矩形覆盖
- 剑指 offer:矩形覆盖
- 【剑指Offer】矩形覆盖
- 剑指offer 矩形覆盖
- 剑指offer-矩形覆盖
- 剑指Offer 矩形覆盖
- 剑指offer 矩形覆盖
- [剑指offer]矩形覆盖
- 《剑指offer》-矩形覆盖
- 【剑指offer】覆盖矩形
- 《剑指offer》矩形覆盖
- android 获取手机网络状态
- pandas 如何分割字符
- exercise8补充
- Lumen控制器调用Model层方法并访问数据库时发生错误
- Cuda 学习教程(四):Cuda程序的优化
- 剑指offer题解C++【10】矩形覆盖
- windows2003 域用户智能卡登录配置的一些问题
- 界面上的下载导出报表的jsp模版
- 计算机编程学习之路好书推荐【转】
- JAVA建造者模式
- = =回归。。【UVAlive】6859凸包
- 系统学习 jQuery (六) 动画特效
- 修改 Github commit 的作者信息
- 多态