題目描述
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
題目分析
依舊是斐波那契數列,2*n的大矩形,和n個2*1的小矩形,其中target*2為大矩陣的大小。有以下幾種情形:
1.target <= 0 大矩形為<= 2*0,直接return 1;
2.target = 1大矩形為2*1,只有一種擺放方法,return1;
3.target = 2 大矩形為2*2,有兩種擺放方法,return2;
4.target = n 分為兩步考慮:
第一次擺放一塊 2*1 的小矩陣,則擺放方法總共為f(target - 1)
第一次擺放一塊1*2的小矩陣,則擺放方法總共為f(target-2)
因為,擺放了一塊1*2的小矩陣(用√√表示),對應下方的1*2(用××表示)擺放方法就確定了,所以為f(targte-2)
方法:遞迴
function
rectcover
(target) else
if(target<=2)else
}
矩形覆蓋 遞迴實現
我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?這個題的比較難以下手,首先找一下規律,n 1,只有一種,n 2,是乙個正方形,可以講小矩形橫著放或者豎著放 當n 3,假如第三個小矩形恰好能夠豎直放下,這個時候,就相當於只...
遞迴四 矩形覆蓋
題目 矩形覆蓋 描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?解決方案 思路 舉例說明 n 1時 乙個2 1的小矩形 2 1的大矩形 1種方法 直接填充 n 2時 2個2 1小矩形 2 2的大矩形 2種方法 豎著...
《劍指Offer》遞迴和迴圈 矩形覆蓋
時間限制 1秒 空間限制 32768k 熱度指數 228315 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?思路 根據找規律得 n 1時,1種 n 2時,2種 n 3時,3種 n 4時,5種 觀察得 n 1時,1種 ...