Domino and Tromino Tiling LeetCode solution in JavaScript
1var numTilings = function (n) {2let mod = 10 ** 9 + 7;3let len = 4;4let ways = new Array(len).fill(0);56// base cases7ways[0] = 1;8ways[1] = 1;9ways[2] = 2;1011// already calculated above12if (n < len - 1) {13return ways[n];14}1516// use % len to circulate values inside our array17for (var i = len - 1; i <= n; i++) {18ways[i % len] =19(ways[(len + i - 1) % len] * 2 + ways[(len + i - 3) % len]) % mod;20}2122return ways[(i - 1) % len];23};