查找斐波纳契数列中第 N 个数。

所谓的斐波纳契数列是指:

  • 前2个数是 0 和 1 。
  • 第 i 个数是第 i-1 个数和第i-2 个数的和。

斐波纳契数列的前10个数字是:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

样例

样例  1:
	输入:  1
	输出: 0
	
	样例解释: 
	返回斐波那契的第一个数字,是0.

样例 2:
	输入:  2
	输出: 1
	
	样例解释: 
	返回斐波那契的第二个数字是1.

注意事项

在测试数据中第 N 个斐波那契数不会超过32位带符号整数的表示范围

方法一:

public class Solution {
    /**
     * @param n: an integer
     * @return: an ineger f(n)
     */
    public int fibonacci(int n) {
        if(n < 3) return n-1;
        int a=0,b=1,sum=0;
        while(n>2){
            sum=a+b;
            a=b;
            b=sum;
            n--;
        }
        return sum;
    }
}

方法二:

class Solution {
    /**
     * @param n: an integer
     * @return an integer f(n)
     */
    public int fibonacci(int n) {
        if(n < 3) return n-1;
        else return fibonacci(n-1) + fibonacci(n-2);
        }
    }
}

结果应该是对的,但是这里LintCode会报TLE

最后修改日期:2020-01-08

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。