[剑指Offer]笔记10.矩形覆盖 C++实现

Problem Description

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

比如n=3时,2*3的矩形块有3种覆盖方法:
[剑指Offer]笔记10.矩形覆盖 C++实现_第1张图片

Mentality

题目很唬人,可以先自己在草稿纸上画一画,发现规律:1,2,3,5,8。。。就是斐波那契数列。
[剑指Offer]笔记10.矩形覆盖 C++实现_第2张图片

Code (C++)

class Solution {
public:
    int rectCover(int number) {
        if(number<=2)
			return number;
		else
			return  rectCover(number-1)+rectCover(number-2);
    }
};

已通过所有的测试用例,欢迎指正批评(´▽`ʃ♡ƪ)

你可能感兴趣的:(剑指Offer笔记)