LeetCode509 斐波那契數

2021-09-09 05:57:46 字數 959 閱讀 3448

斐波那契數,通常用f(n)表示,形成的序列稱為斐波那契數列。該數列由01開始,後面的每一項數字都是前面兩項數字的和。也就是:

f(0) = 0,   f(1) = 1

f(n) = f(n - 1) + f(n - 2), 其中 n > 1.

給定n,計算f(n)

示例 1:

輸入:2

輸出:1

解釋:f(2) = f(1) + f(0) = 1 + 0 = 1.

示例 2:

輸入:3

輸出:2

解釋:f(3) = f(2) + f(1) = 1 + 1 = 2.

示例 3:

輸入:4

輸出:3

解釋:f(4) = f(3) + f(2) = 2 + 1 = 3.

解析:

斐波那契數列是乙個經典的題目,也有很多不同的解法,最簡單的就是遞迴,遞迴的方法比較耗時。第二種方法就是動態規劃的方法,該方法的優點是,可以記錄下每一步計算的結果,減少了大量的重複計算,因此速度非常快,動態規劃需要首先定義乙個陣列,用於儲存每一步的計算結果,並有底向上進行計算,一步步的計算每乙個位置的值,從而順理成章的計算出n位置的值。

**:

int fib1(int n)//遞迴**,簡單,只需要定義準確遞迴出口即可

//動態規劃方法,需要定義乙個用於儲存資料的陣列,防止大量的重複計算

int fib(int n)

return result[n];

}

LeetCode 509 斐波那契數

斐波那契數,通常用 f n 表示,形成的序列稱為斐波那契數列。該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.給定 n,計算 f n 示例 1 輸入 2 輸出 1 解釋 f 2 f 1 f 0 1 0 1...

leetcode 509 斐波那契數

目錄 一 題目內容 二 解題思路 三 斐波那契數,通常用 f n 表示,形成的序列稱為 斐波那契數列 該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1 給你 n 請計算 f n 示例 1 輸入 2 輸出 1...

leetcode 509斐波那契數列

遞迴方法 時間o 2 n 空間o logn class solution 遞迴 記憶化搜尋 時間o n 空間o logn class solution int fib int n return dp n 動態規劃 時間o n 空間o n class solution int fib int n re...