劍指offer05矩形覆蓋

2021-10-05 18:16:32 字數 1504 閱讀 1900

題目描述

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

比如n=3時,23的矩形塊有3種覆蓋方法:

思路:

一開始又矇圈了,看到長方形又是長又是寬覺得有些亂,雖然提示是遞迴但是就不知道該怎麼用了。

仔細思考需要覆蓋的目標長方形的寬是2,第乙個放的長方形如果是豎著放相當於目標長方形寬不變如下圖左圖所示,長-1,第乙個放的長方形如果橫著放,則為了覆蓋下邊必須再橫放乙個長方形如右圖所示,這時目標長方形寬不變,長-2。綜上,目標長方形的長就可以理解為跳台階的台階數,長每次減1或減2,和跳台階完全一樣的題目,如果寬不是2的話這道題該怎麼做咧

**同03 04題

# -*- coding:utf-8 -*-

class

solution

:def

rectcover

(self, number)

:# write code here

res =0if

(number ==1)

: res =

1elif

(number ==2)

: res =

2else

: res = self.rectcover(number-1)

+self.rectcover(number-2)

*2return res

修改為

# -*- coding:utf-8 -*-

class

solution

:def

rectcover

(self, number)

:# write code here

res =

0 ppnum =

1 pnum =2if

(number ==1)

: res =

1elif

(number ==2)

: res =

2else

:for i in

range(3

,number+1)

: res = pnum+ppnum

ppnum = pnum

pnum = res

return res

劍指 Offer 05 替換空格

劍指 offer 05.替換空格 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 方法一 遍歷新增 由於每次替換從 1 個字元變成 3 個字元,使用字元陣列可方便地進行替換。建立字元陣列地長度為 s 的長度的 3 倍,這樣可保證字元陣列可以容納所有替換後的字元。class solut...

劍指 Offer 05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000 我的解答 class solution 這道題還是很簡單的,使用replace或者遍歷整個字串,每到空格就新增 20即可。不過在做完後發現,replace和replaceall方法具有差別,replac...

劍指Offer 05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 思路 因為string 的不可性,每一次在 res 後面新增字元,都要重新開闢空間 複製之前的值,再在末尾新增,所以效率很低,如下 改進 利用 stringbuffer stringbuilder 的特性,底層會申請乙個預設 16 位元...