LintCode斐波納契數(shù)列

題目:

查找斐波納契數(shù)列中第 N 個數(shù)。
所謂的斐波納契數(shù)列是指:
前2個數(shù)是 0 和 1 。
i 個數(shù)是第 i-1 個數(shù)和第i-2 個數(shù)的和。

斐波納契數(shù)列的前10個數(shù)字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

樣例
給定1,返回0

給定2,返回1

給定10,返回34

分析

開始刷LintCode的第一道題,也是很基礎(chǔ)的一道題。
斐波那契數(shù)列經(jīng)常用來講解遞歸的例子。
所以可以用遞歸的方法很方便的解決

遞歸

class Solution {
    /**
     * @param n: an integer
     * @return an integer f(n)
     */
    public int fibonacci(int n) {
        // write your code here
        if(n == 1)
        {
            return 0;
        }
        else if(n == 2)
        {
            return 1;
        }
        else
        {
            return fibonacci(n-1) + fibonacci(n-2); 
        }
    }
}

這是用遞歸的方法解決,很清晰,幾乎是照搬了斐波那契數(shù)列的遞推式
但是遞歸算法的時間復(fù)雜度太高,提交之后并不通過

捕獲.PNG

非遞歸方法

所以需要嘗試非遞歸方法解決這個問題

class Solution {
    /**
     * @param n: an integer
     * @return an integer f(n)
     */
    public int fibonacci(int n) {
        // write your code here
        if(n == 1)
        {
            return 0;
        }
        else if(n == 2)
        {
            return 1;
        }
        else
        {
            int s1 = 0;
            int s2 = 1;
            int sum = 0;
            int i = 3;
            while(i <= n)
            {
                sum = s1 + s2;
                s1 = s2;
                s2 =sum;
                i++;
            }
            return sum;
        }
    }
}

小結(jié)

以上就是斐波那契數(shù)列問題。
** 故不積跬步,無以至千里;不積小流,無以成江海 **
希望能慢慢堅持下去,從簡單到復(fù)雜的算法!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 由于簡書不支持 Latex ,建議去我的博客看原文:斐波納契數(shù)列實現(xiàn)及優(yōu)化求關(guān)注、求交流、求意見、求建議。 前言 ...
    華方閱讀 1,982評論 1 3
  • 查找斐波納契數(shù)列中第 N 個數(shù)。所謂的斐波納契數(shù)列是指:前2個數(shù)是 0 和 1 。第 i 個數(shù)是第 i-1 個數(shù)和...
    DayDayUpppppp閱讀 310評論 0 0
  • 我是小小強(qiáng),這是我的第4篇原創(chuàng)文章,閱讀需要大約10分鐘。 題目 LintCode:斐波納契數(shù)列 描述 查找斐波納...
    我叫小小強(qiáng)閱讀 381評論 0 0
  • 題目 描述 查找斐波納契數(shù)列中第 N 個數(shù)。 所謂的斐波納契數(shù)列是指:前2個數(shù)是 0 和 1 。第 i 個數(shù)是第 ...
    悠揚(yáng)前奏閱讀 374評論 0 1
  • 忙碌還只是剛剛開了個頭,忙里偷閑還可以坐下來喝一壺清茶。很慶幸無意中發(fā)現(xiàn)了一個好去處。漢正街大陸橋的八樓,喧鬧嘈...
    美芽兒閱讀 444評論 0 0

友情鏈接更多精彩內(nèi)容