最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

leetcode70-爬樓梯

2023-05-30 22:22 作者:超級小貓迭代  | 我要投稿

題目描述

假設你正在爬樓梯。需要?n?階你才能到達樓頂。

每次你可以爬?1?或?2?個臺階。你有多少種不同的方法可以爬到樓頂呢?

(詳情請見leetcode70)

動態(tài)規(guī)劃

一開始用遞歸寫,然后超時了...

隨后開了大小為n的數(shù)組,后來發(fā)現(xiàn)沒有必要,只需要三個整型...

大致思路:

在第 n 級臺階上的人,一定是從第 n-1 或第 n-2 級臺階邁上來的

由此可以列出狀態(tài)轉移方程f(n)%3Df(n-1)%2Bf(n-2)

邊界條件是,f(0)%3D1%2Cf(1)%3D1

空間復雜度爆表的寫法(O(n))

推薦的寫法是利用滾動數(shù)組思想

空間復雜度為O(1)的寫法

接下來是從答案抄來的代碼

復雜度分析

時間復雜度:循環(huán)執(zhí)行 n 次,每次花費常數(shù)的時間代價,故漸進時間復雜度為 O(n)。

空間復雜度:這里只用了常數(shù)個變量作為輔助空間,故漸進空間復雜度為 O(1)。

矩陣快速冪

是的,這種題對于大神來講,是用來秀肌肉的orzorzorz

官方給出的答案里說,隨著n的增大,時間復雜度會以O(n)增長

所以我們試圖把時間復雜度降至O(logn)

利用小學二年級知識——矩陣乘法,推導出下面神奇的遞推式

%5Cbegin%7Bbmatrix%7D1%261%5C%5C1%260%5Cend%7Bbmatrix%7D%5Cbegin%7Bbmatrix%7Df(n)%5C%5Cf(n-1)%5Cend%7Bbmatrix%7D%3D%5Cbegin%7Bbmatrix%7Df(n)%2Bf(n-1)%5C%5Cf(n)%5Cend%7Bbmatrix%7D%3D%5Cbegin%7Bbmatrix%7Df(n%2B1)%5C%5Cf(n)%5Cend%7Bbmatrix%7D

然后:

%5Cbegin%7Bbmatrix%7Df(n%2B1)%5C%5Cf(n)%5Cend%7Bbmatrix%7D%3D%5Cbegin%7Bbmatrix%7D1%261%5C%5C1%260%5Cend%7Bbmatrix%7D%5En%5Cbegin%7Bbmatrix%7Df(1)%5C%5Cf(0)%5Cend%7Bbmatrix%7D

定義矩陣

M%3D%5Cbegin%7Bbmatrix%7D1%261%5C%5C1%260%5Cend%7Bbmatrix%7D

問題變成了求解矩陣M的n次方問題

普通求法時間復雜度為O(n),為了降低時間復雜度

使用魔法快速冪加速n次方的求解

(快速冪視頻友情鏈接)

直接上代碼...

納尼(⊙o⊙)?這是什么......

好的......中間那個函數(shù)是取矩陣M的快速冪用的

相當于把n二進制形式有1的位數(shù)取出,通過M不斷做2次方次方(?)

求解出最終的M的n次方

具體可以看上面那個視頻

那么,神魔情況下會用快速冪呢?

偷懶了,截個圖(其實是圖書館閉館力)

需要用到高等數(shù)學微分方程和線性代數(shù)的知識!orz

復雜度分析

時間復雜度:同快速冪,O(logn)。

空間復雜度:O(1)。

通項公式

不知道大佬們有沒有看出來,這個遞推式恰好是斐波那契數(shù)列

所以我們可以站在巨人的肩膀上

直接用公式求第n項!

(推導過程需要用到線性代數(shù)知識!可以前往leetcode70答案區(qū)看視頻,一時半會我也說不清楚orz)

公式:f(n)%3D%5Cfrac%7B1%7D%7B%5Csqrt%7B5%7D%20%7D%20%5B(%5Cfrac%7B1%2B%5Csqrt%7B5%7D%7D%7B2%7D%20)%5En-(%5Cfrac%7B1-%5Csqrt%7B5%7D%7D%7B2%7D%20)%5En%20%5D

代碼

打表法

找個層數(shù)在50左右的樓,走一走,數(shù)一數(shù),既鍛煉了身體,也增強了腦力!

寫在最后

只有不停奔跑,才能勉強停在原地!

leetcode70-爬樓梯的評論 (共 條)

分享到微博請遵守國家法律
连平县| 常德市| 利辛县| 呼伦贝尔市| 开化县| 天长市| 屯昌县| 揭东县| 海晏县| 平安县| 陈巴尔虎旗| 夏津县| 黄大仙区| 长垣县| 米林县| 合水县| 北碚区| 富平县| 舒兰市| 阳城县| 无棣县| 赫章县| 方山县| 来宾市| 桐梓县| 濮阳市| 德江县| 长治县| 明溪县| 建平县| 北票市| 广汉市| 临颍县| 胶州市| 平昌县| 娱乐| 阿巴嘎旗| 呼玛县| 偏关县| 广安市| 丽水市|