フィボナッチ数列最適化時間の複雑さ

以下はO(n)の応答の時間複雑です

static int Fbn(int n) {
        int[] a = new int[n];
        a[0] = 1;
        a[1] = 1;
        for (int i = 2; i < n; i++)
        {
            a[i] = a[i - 1] + a[i - 2];
        }
        return a[n - 1]; 
        }

import  java.util.Scanner;
public class Test {
    public static void main(String [] args) {
        Scanner sc=new Scanner(System.in);
        int n = sc.nextInt();
        int [] a = new int[n];

        a [0] = 1;
        a [1] = 1;

        for (int i = 2; i < n; i++) {
            a [i] = a [i-1] + a [i-2];
        }
        System.out.println(a[n-1]);
    }
}
//时间复杂度为O(n)的java写法

**フィボナッチ数列ではないのでそう最終的にN-1発現さに0を返す**

以下は、時間複雑性O(1)メソッドの程度でありますここに画像を挿入説明

class Solution { 
public:  
 int Fib(int n) {
 const double s = sqrt(5);      
  return (pow((1+s)/2, n) - pow((1-s)/2, n))/s;
       } 
 }

もう一つの事実は、解行列でなければなりませんが、個々の能力は、現在制限され、一時的にできなく細切り、恥ずかしいです。ハッハッハ。

公開された10元の記事 ウォンの賞賛8 ビュー1169

おすすめ

転載: blog.csdn.net/userIDsss/article/details/105179493