我們可以用2 * 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 * 1的小矩形無重疊地覆蓋乙個2 * n的大矩形,總共有多少種方法?
n=3時,2*3的矩形塊有3種覆蓋方法。
依然是斐波那契數列,首先考慮起始的情況:
當n=1時,只有一種覆蓋方法;
當n=2時,可以全橫或者全豎,有兩種覆蓋方法;
當n>2時,無非就是在之前的基礎上擺放橫塊,或者擺放豎塊,來形成新的2 * n矩形。也就是說,它可以是2*(n-1)的矩形增加乙個豎塊,或者是2*(n-2)的矩形增加兩個橫塊來組成。
因此遞推式為dp[n]=dp[n-1]+dp[n-2]。
function
rectcover
(number)
return f;
}
劍指offer js 其中10題
11.進製位運算 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。function numberof1 n return count 12.正負數迴圈 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。保證base和exp...
劍指offer10 矩形覆蓋 題解
我們可以用 2 1 的小矩形橫著或者豎著去覆蓋更大的矩形。請問用 n 個 2 1 的小矩形無重疊地覆蓋乙個 2 n 的大矩形,總共有多少種方法?比如 n 3 時,2 3 的矩形塊有 3 種覆蓋方法 輸入 4返回值 5n 1時,顯然只有一種方法 n 2時,如圖有2種方法 n 3,如圖有3中方法 n 4...
劍指offer js編寫 樹
1 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。ps 我們約定空樹不是任意乙個樹的子結構 思路 首先找到a中結點的值與b相等的結點,然後從這兩個相同的結點出發,判斷是否存在重合,若是返回true。否則,在樹a的左右子樹中尋找與b結點值相同的結點,以這些結點出發遞迴判斷是否是a的子樹。functio...