[クーポンを獲得] [JAVA]フィボナッチ数

[問題の説明]

我々は、すべての今、フィボナッチ数、および整数を入力するように要求することを知っnは、あなたのアイテムの出力n番目のフィボナッチ数フィボナッチ数列(0から、最初の0は0です)。
N <= 39

[思考]の答え

1.再帰的(インタビュー回避)はO(n ^ 2)

F(N)

public class Solution {
   public int Fibonacci(int n) {
       if (n == 0) return 0;
       if (n == 1) return 1;
       return Fibonacci(n - 1) + Fibonacci(n - 2);
   }
}
2.一般的な循環O(n)の空間計算量:O(n)は、
public class Solution {
    public int Fibonacci(int n) {
        int ans[] = new int[40];
        ans[0] = 0;
        ans[1] = 1;
        for(int i=2;i<=n;i++){
            ans[i] = ans[i-1] + ans[i-2];
        }
        return ans[n];
    }
}
3.最適化サイクル(N)スペースOの複雑:O(1)

5. 3. 1. 1 2 0 8
F(6)= F(5)+ F(4)、わずかF(5)、F(4セーブ ) F(5)-f(3)の結果は、
= 8 5を計算します3は、唯一の3が5-2から派生し、5を保存する必要があります


public class Solution {
   public int Fibonacci(int n) {
       int a = 0, b = 1;
       for (int i = 1; i <= n - 2; i++) {
           a = a + b;
           b = a - b;
       }
       return a;
   }
}

[概要]

  1. エクスポートを定義するための再帰的な必要性は、パラメータからの移行が出口に渡さ
  2. 時間の複雑さと空間の複雑さを考慮すると
公開された22元の記事 ウォンの賞賛0 ビュー424

おすすめ

転載: blog.csdn.net/dadongwudi/article/details/105039630
おすすめ