日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

斐波那契數(shù)列

系統(tǒng) 1995 0

劍指offer系列之斐波那契數(shù)列

代碼

    
      package com.study;

/*
 * 求斐波那契數(shù)列第n個(gè)數(shù)字 
 * */
public class suanfa7 {
	
	/*最原始的遞歸版,思路簡(jiǎn)潔,但是如果輸入?yún)?shù)較大,會(huì)造成棧的深度太深,運(yùn)行會(huì)很慢*/
	public static int Fibonacci1(int num) {
		if(num <= 1)
			return num;
		
		else
			return Fibonacci1(num - 1) + Fibonacci1(num - 2);
	}
	
	/*第二種方法,算法復(fù)雜度為O(n),利用一種迭代的思路,避免了遞歸的入棧等操作,提高了時(shí)間效率
	 * 但是如果數(shù)字超過(guò)了30可能就需要把返回類型改成long了*/
	public static int Fibonacci2(int num) {
		if(num <= 1)
			return num;
		else {
			int sum = 1;
			int preNum = 1;
			int prepreNum = 0;
			int i = 2;
			while(i < num) {
				prepreNum = preNum;
				preNum = sum;
				sum = prepreNum + preNum;
				i++;
			}
			
			return sum;
		}
	}
	
	
	public static void main(String[] args) {
		System.out.println(Fibonacci2(10));
	}
}
    <pre>
    
  

備注:

1.斐波那契數(shù)列雖然看似簡(jiǎn)單,但是要考慮清楚實(shí)際的情況,要不斷優(yōu)化算法的復(fù)雜度。

2.另外,對(duì)于迭代這種思路,以前很沒(méi)有感覺(jué),就覺(jué)得沒(méi)有一種屬于自己的快速的方法,可以看出迭代量。突然想到,調(diào)試的時(shí)候,觀察變量的時(shí)候,經(jīng)常用列表的方法去看值,直觀對(duì)比,那么寫(xiě)程序的時(shí)候不妨也列表試試,果然相當(dāng)有效果,迭代量是什么一目了然。
斐波那契數(shù)列

之后只要順著思路寫(xiě)程序即可。

3.斐波那契數(shù)列的應(yīng)用場(chǎng)景很多:

典型的比如:青蛙跳臺(tái)階問(wèn)題,矩形覆蓋問(wèn)題等。解決這種問(wèn)題的思路關(guān)鍵在于看能否找到一種遞歸關(guān)系

    
      f(n) = f(n-1) + f(n - 2)
    
  

如果找到這種遞推關(guān)系,則很容易想到是斐波那契數(shù)列。

以后遇到數(shù)列題,一般首先應(yīng)該想到是斐波那契數(shù)列

斐波那契數(shù)列


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 永吉县| 澄城县| 贵阳市| 松阳县| 阿合奇县| 桦甸市| 泽普县| 信阳市| 鲁山县| 彩票| 承德市| 固始县| 马龙县| 汶上县| 醴陵市| 宁蒗| 平阳县| 九龙坡区| 藁城市| 龙川县| 阿城市| 江阴市| 彭泽县| 麻城市| 双峰县| 喀什市| 莱西市| 惠东县| 大荔县| 萨嘎县| 南木林县| 奉节县| 磐安县| 七台河市| 通州区| 泾川县| 社旗县| 海城市| 咸阳市| 高碑店市| 民乐县|