日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剑指offer 算法 (递归与循环)

發布時間:2025/10/17 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指offer 算法 (递归与循环) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項。

class Solution { public:int Fibonacci(int n) { if(n==0)return 0;else if(n==1)return 1;else// return Fibonacci(n-1)+Fibonacci(n-2);{int *array;array=(int*)malloc(n*sizeof(int));array[0]=0;array[1]=1;for(int i=2;i<n;i++){array[i]=array[i-1]+array[i-2]; }return (array[n-1]+array[n-2]);}} };

題目描述


一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

解析:當n = 1, 只有1中跳法;當n = 2時,有兩種跳法;當n = 3 時,有3種跳法;當n = 4時,有5種跳法;當n = 5時,有8種跳法;.......規律類似于Fibonacci數列

class Solution { public:int jumpFloor(int number) {if(number==1)return 1;if(number==2)return 2;elsereturn jumpFloor(number-1)+jumpFloor(number-2);} };題目描述

一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

解析:用Fib(n)表示青蛙跳上n階臺階的跳法數,青蛙一次性跳上n階臺階的跳法數1(n階跳),設定Fib(0) = 1;
當n = 1 時, 只有一種跳法,即1階跳:Fib(1) = 1;
當n = 2 時, 有兩種跳的方式,一階跳和二階跳:Fib(2) = Fib(1) + Fib(0) = 2;
當n = 3 時,有三種跳的方式,第一次跳出一階后,后面還有Fib(3-1)中跳法; 第一次跳出二階后,后面還有Fib(3-2)中跳法;第一次跳出三階后,后面還有Fib(3-3)中跳法
Fib(3) = Fib(2) + Fib(1)+Fib(0)=4;
當n = n 時,共有n種跳的方式,第一次跳出一階后,后面還有Fib(n-1)中跳法; 第一次跳出二階后,后面還有Fib(n-2)中跳法..........................第一次跳出n階后, 后面還有 Fib(n-n)中跳法.
Fib(n) = Fib(n-1)+Fib(n-2)+Fib(n-3)+..........+Fib(n-n)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-1)
又因為Fib(n-1)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-2)
兩式相減得:Fib(n)-Fib(n-1)=Fib(n-1) => Fib(n) = 2*Fib(n-1) (n >= 2)

class Solution { public:int jumpFloorII(int number) {if(number==0||number==1)return 1;elsereturn 2*jumpFloorII(number-1);} };
題目描述

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? class Solution { public:int rectCover(int number) {if(number==1)return 1;if(number==2)return 2;else return rectCover(number-1)+rectCover(number-2);} };
題目描述

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

解析:觀察題目中的矩形,2*n的,是個長條形。既然只是簡單的長條形,那么依然逆向分析。既然是長條形的,那么從后向前,最后一個矩形2*2的,只有兩種情況:   第一種是最后是由一個2*(n-1)的矩形加上一個豎著的2*1的矩形  另一種是由一個2*(n-2)的矩形,加上兩個橫著的2*1的矩形  因此我們可以得出,  第2*n個矩形的覆蓋方法等于第(n-1)個2*1的小矩形加上第(n-2)個2*1的小矩形方法。

class Solution { public:int rectCover(int number) {if(number==0)return 1;else if(number==1)return 1;else if(number==2)return 2;else return rectCover(number-1)+rectCover(number-2);/*unsigned int array[71]={1,1,2};for(int i=3;i<71;i++){array[i]=array[i-1]+array[i-2];}return array[number];*/} };


總結

以上是生活随笔為你收集整理的剑指offer 算法 (递归与循环)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 咪咪成人网 | 麻豆网站视频 | 国产精自产拍久久久久久蜜 | 精品人妻无码一区二区三 | 黄页av | 超碰在线人人干 | 国产精品国产三级国产aⅴ中文 | 黄色茄子视频 | 浪浪视频污 | 久久精品动漫 | 国产精品9999 | 91精品国产亚洲 | 超碰免费人人 | 爽爽影院在线免费观看 | 国产人成一区二区三区影院 | 国产视频一区二区 | 免费在线看黄色片 | 日韩有码一区二区三区 | 日韩三级一区 | 韩日视频 | 国产另类自拍 | 国产一区免费看 | 少妇久久久久久被弄高潮 | 天堂俺去俺来也www久久婷婷 | 精东传媒在线观看 | 久久久嫩草 | 爱情岛论语亚洲入口 | 国产福利精品视频 | 初尝黑人巨炮波多野结衣 | 东京久久久 | 国产ts人妖调教重口男 | 中文字幕av无码一区二区三区 | 欧美偷拍少妇精品一区 | 国产美女福利在线 | 青青草在线视频免费观看 | 极品人妻videosss人妻 | 美女搡bbb又爽又猛又黄www | 国产视频在线免费观看 | 久久久国产精品无码 | 丰满人妻一区二区三区四区 | 免费搞黄网站 | 在线观看黄色国产 | 国产精品精东影业 | 日韩成人免费在线 | 黄色录像片子 | 午夜在线免费观看视频 | 樱桃视频一区二区三区 | 国产欧美久久一区二区三区 | 国产成人精品亚洲日本在线观看 | 91精品国产综合久久久密臀九色 | 91蝌蚪在线观看 | 国产美女诱惑 | 国产偷自拍 | 中文字幕狠狠干 | 18女人毛片 | 国产亚洲精品久 | 好吊视频一二三区 | 强侵犯の奶水授乳羞羞漫虐 | 另类天堂av | 国产网站在线免费观看 | 一级片在线免费观看视频 | 动漫3d精品一区二区三区乱码 | 国产区精品在线观看 | 92av视频| 亚洲av色区一区二区三区 | 免费看美女被靠到爽的视频 | 欧美另类视频 | 香蕉国产在线 | 金瓶狂野欧美性猛交xxxx | 泰坦尼克号3小时49分的观看方法 | 国产日韩欧美成人 | 成人黄色小说在线观看 | 国产黄色a| 亚洲国产精品久久久 | 国产精品福利一区二区三区 | 欧美三极片 | 五月激情四射网 | 国产无遮挡18禁无码网站不卡 | 99在线免费视频 | 亚洲免费区 | 91精品国自产在线偷拍蜜桃 | 福利在线免费视频 | 五月天综合激情网 | 精品深夜av无码一区二区老年 | 成人漫画网站 | 看黄网站在线 | 91日日| 久久99精品国产麻豆婷婷 | 激情网av | 免费在线国产视频 | 国产精品11 | 国产区一区二区三区 | 国产免费aa | 夜色网| 国产精品字幕 | 在线网站黄 | 美女视频一区二区三区 | 亚洲综合成人网 | 国产成年人免费视频 |