JZ 10矩形覆蓋

2021-10-25 05:25:23 字數 991 閱讀 5381

【題目描述】

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

eg:

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

【解法】

如果到這裡,還沒有發現規律怎麼辦呢?

那我們就再分析以下,從n=3到n=4,怎麼來的呢?

這裡有2種情況:

直接在n=3的情況下,再後面中新增乙個豎著的。這個很顯然成立,有3種情況

然後橫著的顯然能新增到n-2的情況上,也就是在n=2後面,新增2個橫著的。有2種情況

通過以上分析,發現剛好和圖中的個數一樣。

所以總結:f [n]表示2n大矩陣 的方法數。

可以得出:f[n] = f[n-1] + f[n-2],初始條件f[1] = 1, f[2] =2

所以**可用遞迴,記憶遞迴,和動態規劃和遞推

這裡只寫遞推**:

int

rectcover

(int n)

return c;

}

**總結:**jz7、8、9、10都是一類題。

劍指 JZ10矩形覆蓋

題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?比如n 3時,2 3的矩形塊有3種覆蓋方法 解題思路 記憶化遞迴 這了可以以長來做判斷,這裡長就是n,每次填充要麼豎著填充即填充1,要麼橫著填充即填充2,所以和斐...

10 矩形覆蓋

乙隻青蛙一次可以跳上 1 級台階,也可以跳上 2 級。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。n 1 只有橫放乙個矩形一種解決辦法 n 2 有橫放乙個矩形,豎放兩個矩形兩種解決辦法 n 3 n 2的基礎上加1個橫向,n 1的基礎上加2個豎向 n 4 n 3的基礎上加1個橫向,n 2的基礎上加...

(10)矩形覆蓋

我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?當target n 上圖中,如果填充第乙個2 n 綠色 的如圖所示 第一塊豎著放 那麼就變成了rectcover n 1 問題 下圖中,如果填充第乙個2 n 綠色 的如圖所...