We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 0fdd474 commit af277b8Copy full SHA for af277b8
Dynamic-Programming/FibonacciNumber.js
@@ -9,15 +9,19 @@ const fibonacci = (N) => {
9
if (!Number.isInteger(N)) {
10
throw new TypeError('Input should be integer')
11
}
12
-
13
- // creating array to store values
14
- const memo = new Array(N + 1)
15
- memo[0] = 0
16
- memo[1] = 1
17
- for (let i = 2; i <= N; i++) {
18
- memo[i] = memo[i - 1] + memo[i - 2]
+
+ // memoize the last two numbers
+ let firstNumber = 0
+ let secondNumber = 1
+ for (let i = 1; i < N; i++) {
+ const sumOfNumbers = firstNumber + secondNumber
19
+ // update last two numbers
20
+ firstNumber = secondNumber
21
+ secondNumber = sumOfNumbers
22
- return memo[N]
23
24
+ return N ? secondNumber : firstNumber
25
26
27
export { fibonacci }
0 commit comments