課程
/計(jì)算機(jī)基礎(chǔ)
/算法與數(shù)據(jù)結(jié)構(gòu)
/Python 算法面試難點(diǎn)攻堅(jiān)課--動(dòng)態(tài)規(guī)劃
遞歸性能是不是很低?
2020-02-26
源自:Python 算法面試難點(diǎn)攻堅(jiān)課--動(dòng)態(tài)規(guī)劃 2-2
正在回答
遞歸的性能是很低,因?yàn)闀?huì)有大量重復(fù)計(jì)算的過程。但是可以提高性能。你把已經(jīng)遞歸的值存放到字典里,需要用時(shí)取之。這樣你輸入1000都不會(huì)死機(jī)。
from?collections?import?defaultdict total_dic?=?defaultdict(int) def?fib(k): ????if?k?in?[1,?2]: ????????return?1 ????if?k?in?total_dic: ????????result?=?total_dic[k] ????else: ????????result?=?fib(k-1)?+?fib(k-2) ????????total_dic[k]?=?result ????return?result ???????? print(fib(1000))
樓上回答的無非是增加了一個(gè)緩存,那為什么不用Python自帶的緩存來實(shí)現(xiàn)呢,functool.lru_cache,代碼不需要任何變動(dòng),僅僅加一個(gè)裝飾器即可
舉報(bào)
動(dòng)態(tài)規(guī)劃和遞歸作為算法中面試頻率很高,是我們這門課程重點(diǎn)攻克對象。
1 回答老師應(yīng)該是說錯(cuò)了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-03-03
遞歸的性能是很低,因?yàn)闀?huì)有大量重復(fù)計(jì)算的過程。但是可以提高性能。你把已經(jīng)遞歸的值存放到字典里,需要用時(shí)取之。這樣你輸入1000都不會(huì)死機(jī)。
2020-11-11
樓上回答的無非是增加了一個(gè)緩存,那為什么不用Python自帶的緩存來實(shí)現(xiàn)呢,functool.lru_cache,代碼不需要任何變動(dòng),僅僅加一個(gè)裝飾器即可