剑指Offer 面试题09-1:斐波那契数列

斐波那契数列

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。

解题思路

递归解法时间复杂度太高,有大量的重复计算。使用循环解法,关键在于保存当前计算项的前两项计算结果,避免重复计算。

代码

public class Solution {
    public int Fibonacci(int n) {
        if(n <= 0) {
            return 0;
        } else if(n == 1) {
            return 1;
        } else {
            int number1 = 0;
            int number2 = 1;
            for(int i = 0; i < n - 1; i++) {
                int sum = number1 + number2;
                number1 = number2;
                number2 = sum;
            }
            return number2;
        }
    }
}