劍指Offer 矩形覆蓋

2021-10-05 11:37:38 字數 794 閱讀 9614

本部落格為刷題筆記,方便日後複習。

刷題平台:牛客網

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

比如n=3時,23的矩形塊有3種覆蓋方法:

以2x8的矩形為例。示意圖如下:

我們先把2x8的覆蓋方法記為f(8

)f(8)

f(8)

。用第乙個1x2小矩陣覆蓋大矩形的最左邊時有兩個選擇,豎著放或者橫著放。當豎著放的時候,右邊還剩下2x7的區域,這種情況下的覆蓋方法記為f(7

)f(7)

f(7)

。接下來考慮橫著放的情況。當1x2的小矩形橫著放在左上角的時候,左下角和橫著放乙個1x2的小矩形,而在右邊還剩下2x6的區域,這種情況下的覆蓋方法記為f(6

)f(6)

f(6)

。因此f(8

)=f(

7)+f

(6)f(8)=f(7)+f(6)

f(8)=f

(7)+

f(6)

。此時我們可以看出,這仍然是 斐波拉契數列。

class

solution

return third;}}

;

劍指offer 矩形覆蓋

我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?觀察題目中的矩形,2 n的,是個長條形。本來腦中想象的是複雜的華容道,但是既然只是簡單的長條形,那麼依然逆向分析。既然是長條形的,那麼從後向前,最後乙個矩形2 2的,只有兩...

劍指Offer 矩形覆蓋

題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?思路 這個也是跳青蛙的變形 但是要自己找出當前的鋪法和以前鋪法的關係 注意到 情況一 當前塊的話可以由上一塊加上當前這一塊的豎著放 情況二 或者是 上上一塊加上兩...

劍指offer 矩形覆蓋

1 題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?2 思路 遞迴呼叫 若不存在小矩形,則返回0 若只存在乙個小矩形,則只有一種方法,返回1 若存在兩個小矩形,則存在兩種方法,返回2 若小矩形的數量大於2,則若...