面试题:矩形覆盖

题目描述:

我们可以用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 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-code.h...
    eddy_wiki阅读 13,080评论 0 30
  • 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...
    Observer_____阅读 8,131评论 0 1
  • 题目:我们可以用 2 * 1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2 * 1 的小矩形无重叠地覆...
    minningl阅读 1,562评论 0 0
  • 矩阵覆盖 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*...
    McRay阅读 3,077评论 0 0
  • 每一天都是不同的,无论对人还是对物,这段时间我疯狂的迷上了种植多肉,大概是还没有经验,所以死伤无数,不过好在现在存...
    AmayaJitanan阅读 2,635评论 0 1

友情链接更多精彩内容