劍指offer 10 矩形覆蓋

2021-08-28 15:58:14 字數 461 閱讀 8904

題目描述

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。

請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?

公式:f(n) = f(n-1) + f(n-2) 如果乙個數列中的第n項的值為前兩項的值的和,那麼就是"斐波那契"了.

適用:如果第n-1種情況中的任意一種情況都可以"擴充套件一下"到第n種情況,並且:第n-2種情況中的任意一種情況 「擴充套件兩下」 都可以到第n種情況,那麼,就可以用最基本的「斐波那契」的公式了。。。。注意,是任意一種情況哦!

這道題中,對於n=5來說,任意的n=4中的一種情況多加1,就可以滿足n=5的條件,任意一種n=3中的一種情況多加2,就可以滿足n=5的條件,因此,滿足「斐波那契」數列。

class solution 

return v[number-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個空間來安排放置小矩形 如果第乙個小矩形橫著放,那麼它的下面一定是橫著放到,而右...

劍指offer10 矩形覆蓋

我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?關於分治法 分治法,分而治之。就是將原問題劃分為n個規模較小,結構與原問題類似的小問題進行處理,遞迴地解決這些問題,然後再合併求解的過程。分治法在解決的流程上分為三個步驟 ...