剑指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 };
越努力,越幸运