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 2878106 commit 51c68eaCopy full SHA for 51c68ea
1223-dice-roll-simulation.js
@@ -0,0 +1,26 @@
1
+/**
2
+ * @param {number} n
3
+ * @param {number[]} rollMax
4
+ * @return {number}
5
+ */
6
+const dieSimulator = function(n, rollMax) {
7
+ const mod = 10 ** 9 + 7
8
+ const faces = rollMax.length
9
+ const dp = Array.from({ length: n + 1 }, () => new Array(faces + 1).fill(0))
10
+ dp[0][faces] = 1
11
+ for(let j = 0; j < faces; j++) {
12
+ dp[1][j] = 1
13
+ }
14
+ dp[1][faces] = faces
15
+ for(let i = 2; i < n + 1; i++) {
16
17
+ for(let k = 1; k < rollMax[j] + 1; k++) {
18
+ if(i - k < 0) break
19
+ dp[i][j] += dp[i - k][faces] - dp[i - k][j]
20
+ dp[i][j] %= mod
21
22
23
+ dp[i][faces] = dp[i].reduce((ac, e) => ac + e, 0)
24
25
+ return dp[n][faces] % mod
26
+};
0 commit comments