剑指Offer第7题:斐波那契数列
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39
解题思路:斐波那契数列的递推公式为f(n)=f(n-1)+f(n-2),因此最直接的想法是直接递归来做,直接递归的话,算法的时间复杂度过大。此题可以用动态规划来解答,题目中限定了n的范围,因此可以先声明一个长度为(n+1)的数组,用来保存结果。更好的办法是,只用两个数保存结果,因为斐波那契数列的计算只跟前面两个值有关。
数组法:
1 | int Fibonacci(int n) { |
1 | int Fibonacci(int n) { |