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

Problem Description

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

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

Mentality

题目很唬人,可以先自己在草稿纸上画一画,发现规律:1,2,3,5,8。。。就是斐波那契数列。
在这里插入图片描述

Code (C++)

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

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

发布了19 篇原创文章 · 获赞 10 · 访问量 1201

猜你喜欢

转载自blog.csdn.net/qq_38655181/article/details/105473943