题解 | #矩形覆盖#

矩形覆盖

https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6

题目:https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param number int整型 
# @return int整型
#
class Solution:
    def rectCover(self , number: int) -> int:
        #当要覆盖2*n的大矩形的时候,可以分解成覆盖2*(n-1)的矩形+一个2*1的矩形(竖着),或者覆盖2*(n-2)的矩形+2个2*1的矩形(横着)
        #所以覆盖2*n的大矩形其实就是覆盖2*(n-1)的矩形与覆盖2*(n-2)的矩形方法数之和
        #因此递推公式就是f(n)=f(n-1)+f(n-2),和斐波那契数列类似了
        #f(1)=1,f(2)=2,f(3)=3,f(4)=5
        #发现规律也就是f(n)=f(n-1)+f(n-2)
        if number<=2:
            return number
        else:
            a=1
            b=2
            for i in range(number-2):
                cusum=a+b#直接求和
                a=b#更新a
                b=cusum#更新b
            return cusum

题解区天霸不要WA的图解很形象。
图片说明
图片说明

全部评论

相关推荐

感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务