剑指offer-python

面试题:矩形覆盖

2018-06-19  本文已影响0人  小歪与大白兔

题目描述:

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

解题思路:

f(n) = 0 n<=0
f(n) = 1 n==1
f(n) = 2 n==2
f(n) = f(n-1) +f(n-2) n>2


image.png
# -*- coding:utf-8 -*-
class Solution:
    def rectCover(self, number):
        # write code here
        if number <= 0:
            return 0
        if number == 1:
            return 1
        if number == 2:
            return 2
        a = 1
        b = 2
        while number > 2 :
            temp = a
            a = b
            b = temp + b 
            number = number - 1
        return b 
上一篇 下一篇

猜你喜欢

热点阅读