标签:http 题目 int += 描述 剑指offer logs ima code
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这道题更应该用动态规划来做,
动态规划的特点是:最优子结构、无后效性、子问题重叠。话不多说,直接上代码
递归:
public class Solution { public int Fibonacci(int n) { if(n==0) return 0; if(n==1) return 1; return Fibonacci(n-1)+Fibonacci(n-2); } }
动态规划:
public class Solution { public int Fibonacci(int n) { int f = 0; int g = 1; while(n-- > 0){ g += f; f = g - f; } return f; } }
递归:
动态规划:
可以看到效率提高了不只是一个档次
标签:http 题目 int += 描述 剑指offer logs ima code
原文地址:http://www.cnblogs.com/wuguanglin/p/Fibonacci.html