【剑指Offer】矩阵覆盖 解题报告(Python)

【剑指Offer】矩阵覆盖 解题报告(Python)

标签(空格分隔): LeetCode


题目地址:https://www.nowcoder.com/ta/coding-interviews

题目描述:

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

Ways

还是费布拉奇数列。主要是明白这个思想呀~递推公式很简单。

这里写图片描述

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.keep = {0:0, 1:1, 2:2}
    def rectCover(self, number):
        if number in self.keep:
            return self.keep[number]
        else:
            fn = self.rectCover(number - 1) + self.rectCover(number - 2)
            self.keep[number] = fn
            return fn

Date

2018 年 3 月 9 日

posted @ 2018-03-09 20:04  负雪明烛  阅读(29)  评论(0)    收藏  举报