나는 두 가지 솔루션 같은 도전을 이 고전적인 피보나치 도전 모두가 알고 있는 그것을 해결하는 방법(심지어 당신의 애완 동물).
나는 친절하게 요청할 것을 제안하지 않는 다른 솔루션입니다. 나는 그냥을 비교하려면 이러한 두 가지 솔루션입니다. 수천 가지 솔루션을 찾을 수 있습으로 검색합니다.
도전 과제:
/*
0 1 2 3 4 5 6 7 8 9
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
fib(3) returns 2
fib(9) returns 34
and so on...
*/
모두 솔루션은 아래에 있습니다. 제 질문은:
는 솔루션 B 보다 느리게 실행 솔루션? 기 때문에서 B 우리는 이 아래 줄:
fibArr.push(fibArr[fibArr.length - 1] + fibArr[fibArr.length - 2])
가 length
기능을 가을 통해 전체 배열의 수를 계산하는 품목? 거나 이미에서 반환하십니까?
솔루션:
function fib(n) {
const fiboArray = [0,1]
for(let i=2; i <= n; i++) {
fiboArray.push(fiboArray[i-2] + fiboArray[i-1])
}
return fiboArray[n]
}
console.log(fib(5))
Solution B:
function fib(n) {
const fibArr = [0, 1, 1]
if(n == 0) {
return 0
}
if(n == 1 || n == 2) {
return 1
}
if (n > 2) {
for (let i = 3; i <= n; i++) {
fibArr.push(fibArr[fibArr.length - 1] + fibArr[fibArr.length - 2])
}
}
return fibArr[fibArr.length - 1]
}
console.log(fib(9))