1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/掷骰子模拟 [dice-roll-simulation].html
2022-03-29 12:43:11 +08:00

39 lines
1.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数。</p>
<p>不过我们在使用它时有个约束,就是使得投掷骰子时,<strong>连续</strong> 掷出数字&nbsp;<code>i</code>&nbsp;的次数不能超过&nbsp;<code>rollMax[i]</code><code>i</code>&nbsp;从 1 开始编号)。</p>
<p>现在,给你一个整数数组&nbsp;<code>rollMax</code>&nbsp;和一个整数&nbsp;<code>n</code>,请你来计算掷&nbsp;<code>n</code>&nbsp;次骰子可得到的不同点数序列的数量。</p>
<p>假如两个序列中至少存在一个元素不同,就认为这两个序列是不同的。由于答案可能很大,所以请返回 <strong>&nbsp;<code>10^9 + 7</code></strong>&nbsp;之后的结果。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>n = 2, rollMax = [1,1,2,2,2,3]
<strong>输出:</strong>34
<strong>解释:</strong>我们掷 2 次骰子,如果没有约束的话,共有 6 * 6 = 36 种可能的组合。但是根据 rollMax 数组,数字 1 和 2 最多连续出现一次,所以不会出现序列 (1,1) 和 (2,2)。因此,最终答案是 36-2 = 34。
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>n = 2, rollMax = [1,1,1,1,1,1]
<strong>输出:</strong>30
</pre>
<p><strong>示例 3</strong></p>
<pre><strong>输入:</strong>n = 3, rollMax = [1,1,1,2,2,3]
<strong>输出:</strong>181
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= n &lt;= 5000</code></li>
<li><code>rollMax.length == 6</code></li>
<li><code>1 &lt;= rollMax[i] &lt;= 15</code></li>
</ul>