高頻算法面試題學習總結----動態規劃1:斐波那契

題目:斐波那契如下:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...
     計算斐波那契第n位 F(n), n < 90。
輸入:n = 5
輸出:5

代碼實現:

#include<iostream>
#include<vector>

using namespace std;

struct Solution {
	vector<int> memo;
	Solution() {
		memo.assign(1000, -1);
		memo[0] = 0;
		memo[1] = 1;
	}

	int F1(int n) {	//備忘模型:未知-->已知
		if (memo[n] == -1)
			return F1(n - 1) + F1(n - 2);
		return memo[n];
	}

	int F2(int n) {	//演繹模型:已知-->未知
		for (int i = 2; i <= n; ++i) {
			memo[i] = memo[i - 1] + memo[i - 2];
		}
		return memo[n];
	}
};
int main()
{
	Solution solution;
	cout << solution.F1(15) << endl;
	cout << solution.F2(15) << endl;
	return 0;
}

 

箴言錄

博學之,審問之,慎思之,明辨之,篤行之。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章