LeetCode刷题之面试题10- I. 斐波那契数列
我不知道将去向何方,但我已在路上! |
---|
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! |
- 题目:
写一个函数,输入n
,求斐波那契(Fibonacci)数列的第n
项。斐波那契数列的定义如下:
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 - 示例:
示例 1 :
输入:n = 2
输出:1
示例 2 :
输入:n = 5
输出:5
- 提示:
0 <= n <= 100
- 代码1:
class Solution:
def fib(self, n: int) -> int:
n1, n2 = 0, 1
for i in range(n):
n1, n2 = n2, n1 + n2
return n1 % 1000000007
# 执行用时 :36 ms, 在所有 Python3 提交中击败了84.48%的用户
# 内存消耗 :13.8 MB, 在所有 Python3 提交中击败了100.00%的用户
- 算法说明:
找出斐波那契数列的规律,然后逐步更新n1
和n2
,也就是F(N)
和F(N - 1)
,返回n1
,注意取模。