1. 程式人生 > >矩陣覆蓋python實現

矩陣覆蓋python實現

題目描述

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法?  

Python實現

# -*- coding:utf-8 -*-
class Solution:
  def rectCover(self, number):
# write code here
    if number <= 2:
      return number
    else:
      methods = []
      for i in range(number):
        if i <= 1:
          methods.append(i+1)
        else:
          methods.append(methods[i-1]+methods[i-2])
      return methods[number-1]

 解題關鍵:理解題目,若第一次擺放一塊 2*1 的小矩陣,則擺放方法總共為f(number - 1);若第一次擺放一塊1*2的小矩陣,則擺放方法總共為f(number-2)