Number of Music Playlists LeetCode solution in JavaScript
1/**2* @param {number} n3* @param {number} goal4* @param {number} k5* @return {number}6*/7var numMusicPlaylists = function (n, goal, k) {8const MOD = 1e9 + 7;9let dp = Array.from({ length: 2 }, () => new Array(n + 1).fill(0));10dp[0][0] = 1;1112for (let i = 1; i <= goal; i++) {13dp[i % 2][0] = 0;14for (let j = 1; j <= Math.min(i, n); j++) {15dp[i % 2][j] = (dp[(i - 1) % 2][j - 1] * (n - (j - 1))) % MOD;16if (j > k)17dp[i % 2][j] = (dp[i % 2][j] + dp[(i - 1) % 2][j] * (j - k)) % MOD;18}19}2021return dp[goal % 2][n];22};