The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is,
F(0) = 0, F(1) = 1
F(n) = F(n - 1) + F(n - 2), for n > 1.
Given n, calculate F(n).
Example 1:
Input: n = 2
Output: 1
Explanation: F(2) = F(1) + F(0) = 1 + 0 = 1.
Example 2:
Input: n = 3
Output: 2
Explanation: F(3) = F(2) + F(1) = 1 + 1 = 2.
Example 3:
Input: n = 4
Output: 3
Explanation: F(4) = F(3) + F(2) = 2 + 1 = 3.
난이도: easy
DP
var fib = function(n) {
const arr = new Array(n).fill(0);
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;
for (let i = 3; i < n + 1; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n]
};
Recursive
var fib = function(n) {
if (n === 0) return 0;
if (n === 1) return 1;
return fib(n - 1) + fib(n - 2);
}
물론 효율은 DP로 풀이하는 것이 훨씬 좋다
반응형
'Algorithm' 카테고리의 다른 글
[Leetcode] 1523. Count Odd Number in an Interval Range (1) | 2022.03.17 |
---|---|
[Leetcode] 1137. N-th Tribonacci Number (0) | 2022.03.17 |
[Leetcode] 2176.Count Equal and Divisible Pairs in an Array (0) | 2022.03.12 |
[Leetcode] 21. Merge Two Sorted Lists (0) | 2022.03.12 |
[Leetcode] 442. Find All Duplicates in an Array (0) | 2022.03.07 |