3
* @param {number[]} rollMax6
var dieSimulator = function (n, rollMax) {8
let help = (prev, rolls, rollsLeft) => {9
if (rolls == n) return 1;10
if (dp[rolls] == undefined) dp[rolls] = {};11
if (dp[rolls][rollsLeft] == undefined) dp[rolls][rollsLeft] = {};12
if (dp[rolls][rollsLeft][prev] != undefined)13
return dp[rolls][rollsLeft][prev];15
for (let i = 0; i < rollMax.length; i++) {16
if (rollsLeft === 0 && prev === i) continue;17
if (prev === i) sum += help(i, rolls + 1, rollsLeft - 1);18
else sum += help(i, rolls + 1, rollMax[i] - 1);21
dp[rolls][rollsLeft][prev] = sum % (10 ** 9 + 7);22
return dp[rolls][rollsLeft][prev];24
return help(null, 0, Infinity);