剑指offer—矩形覆盖

华电北风吹
天津大学认知计算与应用重点实验室
日期:2015/9/30

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

解析:动态规划,还记得跳台阶么?

# -*- coding:utf-8 -*-
class Solution:
    def rectCover(self, number):
        return self.func(number)

    d={0:1,1:1,2:2}
    def func(self,num):
        k=self.d.get(num)
        if k!=None:
            return k
        result=self.func(num-1)+self.func(num-2)
        self.d[num]=result
        return result

你可能感兴趣的:(剑指offer—矩形覆盖)