Nowcoder java-斐波那契数列
(题目来自牛客网)
思路
//斐波那契数列,每一个数和前面的两个数相关,如果采用递归方式,会有数字需要重复算,效率低。例如f(10)=f(9)+f(8),f(9)=f(8)+f(7),f(8)就重复计算了。
//建立一个数组,从下到上计算,将计算过的值存入数组,需要的时候取出来即可。f(2)=f(1)+f(0),f(3)=f(2)+f(1),……
//时间复杂度为O(n)
代码
public class Solution {
public int Fibonacci(int n) {
if(n<=1){
return n;
}
int[] record = new int[n+1];
record[0] = 0;
record[1] = 1;
for(int i=2;i<=n;i++){
record[i] = record[i-1] + record[i-2];
}
return record[n];
}
}