剑指offer 斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

 

思路:动态规划。直接用递归太费时。

 1 class Solution {
 2 public:
 3     int Fibonacci(int n) {
 4          
 5         vector<int> f(40, 0);
 6         f[1] = 1;
 7         for (int i = 2; i < 40; i++) {
 8             f[i] = f[i - 1] + f[i - 2];
 9         }
10         return f[n];
11          
12         /*
13         //为节省空间,只用三个变量
14         int a = 0, b = 1, c;
15         if (n <= 0) {
16             return a;
17         }
18         for (int i = 2; i <= n; i++) {
19             c = a + b;
20             a = b;
21             b = c;
22         }
23         return b;
24         */
25         }
26 };

 

posted @ 2019-03-06 00:19  琴影  阅读(100)  评论(0编辑  收藏  举报