Number of Music Playlists LeetCode solution in JavaScript

1
/**
2
* @param {number} n
3
* @param {number} goal
4
* @param {number} k
5
* @return {number}
6
*/
7
var numMusicPlaylists = function (n, goal, k) {
8
const MOD = 1e9 + 7;
9
let dp = Array.from({ length: 2 }, () => new Array(n + 1).fill(0));
10
dp[0][0] = 1;
11

12
for (let i = 1; i <= goal; i++) {
13
dp[i % 2][0] = 0;
14
for (let j = 1; j <= Math.min(i, n); j++) {
15
dp[i % 2][j] = (dp[(i - 1) % 2][j - 1] * (n - (j - 1))) % MOD;
16
if (j > k)
17
dp[i % 2][j] = (dp[i % 2][j] + dp[(i - 1) % 2][j] * (j - k)) % MOD;
18
}
19
}
20

21
return dp[goal % 2][n];
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0