劍指offer 矩形覆蓋

2021-09-26 04:28:34 字數 661 閱讀 2910

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

/*

1.如果n=1,只有一種方法。

2.如果n=2,兩種方法,一種是橫著,一種是豎著。

3.當 n>2時,把覆蓋2*n區域的方法數目看成n的函式f(n)。用第乙個2*1的矩形去覆蓋大矩形時,有兩種選擇:一是豎著放,二是橫著放。

當豎著放的時候,右邊還剩2*(n-1)的區域,此時方法數目為右邊還剩下2*(n-1)的區域的方法數目,即為f(n-1)。

當橫著放的時候,小矩形橫著放的下面(或者上面)必須橫著放乙個小矩形,右邊還剩2*(n-2)的區域,此時方法數目為右邊還剩下2*(n-2)的區域的方法數目,即為f(n-2)。

4.斐波那契數列:1 2 3 5 8 ...

*/class solution ;

if (number < 2)

return result[number];

long long fibone = 0;

long long fibtwo = 1;

long long fibn =0;

for (int i =1;i<= number;i++)

return fibn;

}};

劍指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,則若...