1. 本题知识点
递归
2. 题目描述
大家都知道斐波那契数列,现在要求输入一个整数 n,请你输出斐波那契数列的第 n 项(从 0 开始,第 0 项为 0)。
3. 解题思路
- 使用递归(但递归会重复计算一些子问题,效率不高,但可读性强)
- 使用迭代
4. 代码
使用递归
public class Solution {
public int Fibonacci(int n) {
if(n < 2) {
return n == 0 ? 0 : 1;
}
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
使用迭代
public class Solution2 {
private int[] fib = new int[40];
public Solution2() {
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < 40; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
}
public int Fibonacci(int n) {
return fib[n];
}
}