剑指offer:矩形覆盖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer:矩形覆盖相关的知识,希望对你有一定的参考价值。

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

class Solution:
    """
    如果number == 1,那么只有1种
    即
    f(1) == 1
    f(2) == 2
    ...
    f(n) = f(n-1) + f(n-2)
    因此跟斐波那契数列是一样的,可用递归也可用循环求解
    """
    def rectCover(self, number):
        if number <= 2:
            return number
        # return self.rectCover(number - 1) + self.rectCover(number - 2)

        a, b = 1, 2
        for i in range(3, number + 1):
            c = a + b
            a = b
            b = c

        return b

以上是关于剑指offer:矩形覆盖的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer-Java-矩形覆盖

剑指OFFER 矩形覆盖

剑指Offer:矩形覆盖N1

矩形覆盖-剑指offer

剑指offer 10矩形覆盖

《剑指offer》10-12题