【題目描述】
我們可以用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 綠色 的如圖所...