【剑指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
京公网安备 11010502036488号