76 - 小矩形覆盖大矩形

1. 可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种覆盖方法?请用递归的方式实现

  • 斐波那契数列的应用
def rectCover1(number):
    if number == 0:
        return 0
    elif number == 1:
        return 1
    elif number == 2:
        return 2
    else:
        return rectCover1(number - 1) + rectCover1(number - 2)
    
print(rectCover1(10))
89

2. 请用非递归的方式实现第1题

def rectCover2(number):
    if number == 0:
        return 0
    elif number == 1:
        return 1
    elif number == 2:
        return 2
    else:
        res = [0, 1, 2]
        while len(res) <= number:
            res.append(res[-1] + res[-2])
        return res[number]
    
print(rectCover2(10))
89

77 - 乘积最大子序列

发布了208 篇原创文章 · 获赞 249 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_29339467/article/details/104984407
76