遞迴(迭代) 矩形覆蓋

2021-08-21 23:49:42 字數 804 閱讀 8502

題目描述

我們可以用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種 ...