フィボナッチフィボナッチ数10は提供プログラミングその勝

問題:フィボナッチを見つけます

入力: N

出力: ITEM N Fibonaceiを求めて

アイデア:

再帰/サイクル

コード:

再帰的なコード

int fibo(int n)
{
	if(n==0)
		return 0;
	if(n==1)
		return 1;
	return fibo(n-1)+fibo(n-2);
}

ループコード

class Solution {
public:
    int Fibonacci(int n) {
        int result[2]={0,1};
        if(n<2)
            return result[n];
        int fibNMinusOne = 1;
        int fibNMinusTwo = 0;
        int fibN;
        for(int i=2;i<=n;i++)
        {
            fibN = fibNMinusOne + fibNMinusTwo;
            fibNMinusTwo = fibNMinusOne;
            fibNMinusOne = fibN;
        }
        return fibN;
    }
};

複雑分析:再帰的な符号化複雑O(2 ^ N)であり、空間的複雑度はO(N)である(N-1スタック領域を占めるまで)、O(N)の時間複雑さの巡回符号、空間的複雑それはO(1)です。 

 

公開された56元の記事 ウォン称賛10 ビュー6799

おすすめ

転載: blog.csdn.net/qq_22148493/article/details/104383695
おすすめ