青蛙跳臺階
wang-程式設計日記四:
青蛙跳臺階問題(斐波拉契蛾數列應用)
一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階,請問這隻青蛙跳上n級臺階總共有多少種跳法?
解法一://遞迴
青蛙只有兩種跳法要麼跳一級要麼跳兩級,如果從第n次開始回溯這思考,(n有兩種可能n-1或n-2,n-1有兩種可能n-2或n-3,n-2有兩種可能n-3或n-4)。
所以從第一次開始思考(假設臺階大於2,那麼3有兩種可能1或2,4有兩種可能3或2,··)發現規律當前臺階數可能跳法=臺階數-1可能跳法+臺階數-2可能跳法(f(n) = f(n - 1)+f(n -2))遞迴實現還是比較簡單的。
程式碼:
int fun(int n ){
if (n == 2)
return 2;
else if (n == 1)
return 1;
else if (n == 0)
return 0;
return fun(n - 1) + fun(n - 2);
}
解法2://動態規劃(意思可以百度)
5
4 3
3 2 2 1
2 1
在解法1中會發現假設n=5,那麼他要計算重複的兩次n = 3,如果n的次數增大則重複計算的次數也越多,所以如果把計算過的n存在陣列中,每次計算直接利用訪問陣列那麼計算速度就會優化非常多
程式碼:
int climbStairs(int n) {
vector<int> memory(n+1,-1);
memory[0] = 0;
memory[1] = 1;
memory[2] = 2;
for (int i = 3; i <= n; i++)
memory[i] = memory[i - 1] + memory[i - 2];
return memory[n];
}
相關文章
- 臺階很高,青蛙跳不跳?
- 青蛙跳臺階(遞迴思想)遞迴
- DAY2 做題變態青蛙跳臺階
- [每日一題] 第十七題:青蛙跳臺階問題每日一題
- 劍指 Offer 10- II. 青蛙跳臺階問題JavaJava
- 不管是青蛙跳臺階還是who爬樓梯,能上去就行
- 茶葉品牌進階,竹葉青的新答案
- 中青寶:“雲中快遊”雲遊戲平臺目前正處於試運營階段遊戲
- 跳臺階
- SSD固態硬碟受中、高階伺服器所青睞硬碟伺服器
- 【Vue進階】青銅選手,如何自研一套UI庫?VueUI
- 青島開票-青島開票
- EMQ 助力青島研博建設智慧水務平臺MQ
- 劍指offer——跳臺階
- 青原櫻
- 013、青溪
- 青島哪裡有開票-青島開票
- 青島哪裡有開票-青島開票
- Nim遊戲2(臺階型)遊戲
- 152、北青蘿
- 青銅時代
- 青島開票
- 關 於 青 島 哪 裡 可 以 開 具 票-青島
- Linux學習的五個臺階Linux
- 劍指offer 變態跳臺階
- 青團社:億級靈活用工平臺的雲原生架構實踐架構
- 世界品牌實驗室:2021年全球十大高階名茶 中國竹葉青上榜
- React 從青銅到王者系列教程之倔強青銅篇React
- Vue 之青銅 I ⭐Vue
- Vue 之青銅 I ⭐⭐Vue
- 大屏視覺化從青銅到王者的進階,你只差了一個「元件複用」 !視覺化元件
- 陸毅、陳小春家庭都青睞的精銳高階輔導,有何過人之處?
- 『研究表明iPhone使用者更青睞高階機型』今日資料行業日報(2018.09.13)iPhone行業
- GDC釋出報告,HTCVive依然是開發者最青睞的平臺
- 如何可以開青島加油發票_青島百度經驗
- 劍指offer 9 變態跳臺階
- “中臺”成網際網路熱詞,TSINGSEE青犀AI演算法中臺介紹及應用特點GseAI演算法
- 關於青島哪裡有開住宿費發票-青島本地寶