Domino and Tromino Tiling LeetCode solution in JavaScript

1
var numTilings = function (n) {
2
let mod = 10 ** 9 + 7;
3
let len = 4;
4
let ways = new Array(len).fill(0);
5

6
// base cases
7
ways[0] = 1;
8
ways[1] = 1;
9
ways[2] = 2;
10

11
// already calculated above
12
if (n < len - 1) {
13
return ways[n];
14
}
15

16
// use % len to circulate values inside our array
17
for (var i = len - 1; i <= n; i++) {
18
ways[i % len] =
19
(ways[(len + i - 1) % len] * 2 + ways[(len + i - 3) % len]) % mod;
20
}
21

22
return ways[(i - 1) % len];
23
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0