劍指offer 10矩陣覆蓋

2022-09-17 10:51:11 字數 718 閱讀 6778

0.簡介

# 本文是牛客網《劍指offer》刷題筆記,筆記索引鏈結

1.題目

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

2.思路

# 2*1的矩陣覆蓋2*8的矩陣的方法f(8):用第乙個1*2矩陣覆蓋2*8矩陣的最左邊時有豎著或橫著兩種方法。

當1*2矩陣豎著放時,2*8矩陣右邊剩餘2*7的區域,覆蓋2*7區域的方法記為f(7);

當1*2矩陣橫著放時,2*8左上角放乙個1*2的矩陣,則2*8左下角必須放乙個1*2的矩陣,2*8右邊剩餘2*6的區域,覆蓋2*6區域的方法記為f(6)。

結論:用1*2的矩陣覆蓋2*8的矩陣的方法歸納為f(8) = f(7)+f(6)

3.code

# 返回值:用1*2矩陣無重疊覆蓋2*n的矩陣的方法數

# 參   數:矩陣的長度n

1

class solution

17return c;

18 }

19 };

劍指OFFER 10矩陣覆蓋

我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?這道題的要點就是對於題幹的理解和轉換,可以看到大矩形的行上的長度是固定的 2 唯一的變化在於列上的長度 n 而列上的填充方式 1.2 1的小矩陣豎著去覆蓋 相當於前進一格 ...

劍指offer 10 矩形覆蓋

題目 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?思路 斐波那契數列的變種,為什麼是斐波那契數列的變種?首先我們 認為小矩形為n的時候的總數是n,而那麼根據組合數學裡的加法原理,我把此題分為兩類,第一類就是小矩形1 ...

劍指offer 10 矩形覆蓋

題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?思路 對於矩形的覆蓋,2 n大小的矩形,如果第乙個小矩形豎著放,那麼右邊還有n 1個空間來安排放置小矩形 如果第乙個小矩形橫著放,那麼它的下面一定是橫著放到,而右...