题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
思路:用数组暂存,尽量避免递归!!!注意输入0的时候应该返回0
C/C++ 运行时间:3ms 占用内存:488k
class Solution
{
public:
int Fibonacci(int n)
{
int ans[40];
ans[1] = ans[2] = 1; ans[0] = 0;
for(int i=3; i<=39; ++i)
ans[i] = ans[i-1] + ans[i-2];
return ans[n];
}
};
Java 运行时间:22ms 占用内存:9168k
import java.util.ArrayList;
public class Solution
{
public int Fibonacci(int n)
{
ArrayList<Integer> ans = new ArrayList<>();
ans.add(0);
ans.add(1);
ans.add(1);
for(int i=3; i<=39; ++i)
{
ans.add(ans.get(i-1) + ans.get(i-2));
}
return ans.get(n);
}
}
Python 2.x 运行时间:33ms 占用内存:5624k
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
# write code here
ans = []
ans.append(0)
for i in range(2):
ans.append(1)
for i in range(3, 40):
ans.append(ans[i-1] + ans[i-2])
return ans[n]