当前位置:
首页 >
[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
发布时间:2023/12/10
33
豆豆
生活随笔
收集整理的这篇文章主要介绍了
[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
【问题描述】
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
【解答思路】
1.递归(面试避免) O(n^2)
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);} }2.一般循环 O(n) 空间复杂度:O(n)
public class Solution {public int Fibonacci(int n) {int ans[] = new int[40];ans[0] = 0;ans[1] = 1;for(int i=2;i<=n;i++){ans[i] = ans[i-1] + ans[i-2];}return ans[n];} }3.循环优化 O(n) 空间复杂度:O(1)
0 1 1 2 3 5 8
f(6) = f(5) + f(4),只需要保存f(5) , f(4) 由f(5) -f(3) 得出
计算8 = 5+3时,只需要保存5, 3由5-2得出
【总结】
总结
以上是生活随笔为你收集整理的[剑指offer]面试题第[7]题[JAVA][斐波那契数列][递归]的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【手势交互】9. PS Move
- 下一篇: 上天入海又怎样?阿里的运动达人纷纷表示不