피보나치 수열 리트코드

3802 단어

제목


함수를 쓰고 n을 입력하여 피보나치(Fibonacci) 수열의 n항을 구합니다.피보나치 수열의 정의는 다음과 같다. f(n)= f(n-1)+f(n-2);

귀속 해법

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

이 귀환의 시간 효율은 지수급으로 효율이 매우 낮다.

낮게 올라가다


f(n) = f(n-1) + f(n-2);
int dp[n+1];
dp[0] =0;
dp[1] = 1;
for(int i=2;i<=n;i++)
{
	dp[i] = dp[i-1] + dp[i-2];
}
return dp[n];

낮은 방법에서 위로 올라가는 시간 효율은 O(n)이고 공간 효율은 O(n)이다.

더 빠른 효율 매트릭스 곱셈


시간 효율은 O(logn)이다.

좋은 웹페이지 즐겨찾기