黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

斐波那契數列

系統 2130 0

劍指offer系列之斐波那契數列

代碼

    
      package com.study;

/*
 * 求斐波那契數列第n個數字 
 * */
public class suanfa7 {
	
	/*最原始的遞歸版,思路簡潔,但是如果輸入參數較大,會造成棧的深度太深,運行會很慢*/
	public static int Fibonacci1(int num) {
		if(num <= 1)
			return num;
		
		else
			return Fibonacci1(num - 1) + Fibonacci1(num - 2);
	}
	
	/*第二種方法,算法復雜度為O(n),利用一種迭代的思路,避免了遞歸的入棧等操作,提高了時間效率
	 * 但是如果數字超過了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.斐波那契數列雖然看似簡單,但是要考慮清楚實際的情況,要不斷優化算法的復雜度。

2.另外,對于迭代這種思路,以前很沒有感覺,就覺得沒有一種屬于自己的快速的方法,可以看出迭代量。突然想到,調試的時候,觀察變量的時候,經常用列表的方法去看值,直觀對比,那么寫程序的時候不妨也列表試試,果然相當有效果,迭代量是什么一目了然。
斐波那契數列

之后只要順著思路寫程序即可。

3.斐波那契數列的應用場景很多:

典型的比如:青蛙跳臺階問題,矩形覆蓋問題等。解決這種問題的思路關鍵在于看能否找到一種遞歸關系

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

如果找到這種遞推關系,則很容易想到是斐波那契數列。

以后遇到數列題,一般首先應該想到是斐波那契數列

斐波那契數列


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論