LeetCodeブラシの質問インタビューの質問10-I。フィボナッチ数列
どこに行くのかわかりませんが、もう途中です! |
---|
会ったことはありませんが、時間は急いでいますが、ユシに会いました。本当に素晴らしい運命です。ご来店ありがとうございました! |
- トピック:
関数を記述し、入力しn
、最初のフィボナッチ(フィボナッチ)シリーズのn
アイテムを見つけます。フィボナッチ数列の定義は次のとおりです。
フィボナッチ数列は0と1で始まり、後続のフィボナッチ数は前の2つの数を加算することによって取得されます。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
し、モジュラスに注意を払います。