【剑指offer】-矩形覆盖-10/67

1. 题目描述

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

比如n=3时,2*3的矩形块有3种覆盖方法:在这里插入图片描述

2. 题目分析

1
2
3
4
1. 当n = 1 时,有1
2. 当n = 2 时,有2
3. 当n = 3 时,有3
4. 所以,递推的关系为: f(n) = f(n-1)+ f(n-2

3. 题目代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int rectCover(int number)
{
int a[100];
a[1] = 1;
a[2] = 2;
for(int i = 3; i <= number; i++)
{
a[i] = a[i-1] + a[i-2];
}
return a[number];
}
};
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2017-2020 苦酒
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信