【面试题8 : 斐波那契数列】

题目

image

思路

显然是不能用递归的,因为时间复杂度太高。

可以考虑用两个变量分别村粗n的前两个数值。也可以考虑用一个n+1的数组来存放。我这里选择前一个方案。

代码实现

public class Test08 {
    public static int Fibonacci(int n) {
        int a=1,b=1,c=0;
        if(n<0){
            return 0;
        }else if(n == 1 || n ==2){
            return 1;
        }else {
            for (int i=3;i<=n;i++){
                c = a + b;
                a = b;
                b = c;
            }
            return c;
        }
    }

    public static void main(String[] args) {
        int result = Fibonacci(11);
        System.out.println(result);//89
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunweiguo1/article/details/80342894
个人分类: 剑指offer
所属专栏: 剑指offer题解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭