码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer:矩形覆盖

时间:2019-04-17 11:06:50      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:数列   一个   code   number   覆盖   ==   ber   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:矩形覆盖

标签:数列   一个   code   number   覆盖   ==   ber   offer   斐波那契   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!