首页 > 其他 > 详细

剑指offer:矩形覆盖

时间:2019-04-17 11:27:37      阅读:128      评论:0      收藏:0      [点我收藏+]
题目描述
我们可以用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:矩形覆盖

原文:https://blog.51cto.com/jayce1111/2379874

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!