【剑指offer】矩形覆盖(python)
覆盖n为1时,只有一种覆盖方法。
覆盖n为2时,有两种覆盖方法。
要覆盖2xn的大矩形,可以先覆盖2x1的矩形,再覆盖2x(n-1)的矩形;或者先覆盖2x(n-2)的矩形。而覆盖2x(n-1)的矩形和2x(n-2)的矩形可以看成子问题。
递推公式就有了。
# -*- coding:utf-8 -*- class Solution: def rectCover(self, number): # write code here # base 是n=1和n=2 if number <= 2: return number pre1 = 1 pre2 = 2 result = 0 for i in range(3,number+1): result = pre1+pre2 pre1 = pre2 pre2 = result return result