mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
57 lines
2.6 KiB
HTML
57 lines
2.6 KiB
HTML
<p>你需要访问 <code>n</code> 个房间,房间从 <code>0</code> 到 <code>n - 1</code> 编号。同时,每一天都有一个日期编号,从 <code>0</code> 开始,依天数递增。你每天都会访问一个房间。</p>
|
||
|
||
<p>最开始的第 <code>0</code> 天,你访问 <code>0</code> 号房间。给你一个长度为 <code>n</code> 且 <strong>下标从 0 开始</strong> 的数组 <code>nextVisit</code> 。在接下来的几天中,你访问房间的 <strong>次序</strong> 将根据下面的 <strong>规则</strong> 决定:</p>
|
||
|
||
<ul>
|
||
<li>假设某一天,你访问 <code>i</code> 号房间。</li>
|
||
<li>如果算上本次访问,访问 <code>i</code> 号房间的次数为 <strong>奇数</strong> ,那么 <strong>第二天</strong> 需要访问 <code>nextVisit[i]</code> 所指定的房间,其中 <code>0 <= nextVisit[i] <= i</code> 。</li>
|
||
<li>如果算上本次访问,访问 <code>i</code> 号房间的次数为 <strong>偶数</strong> ,那么 <strong>第二天</strong> 需要访问 <code>(i + 1) mod n</code> 号房间。</li>
|
||
</ul>
|
||
|
||
<p>请返回你访问完所有房间的第一天的日期编号。题目数据保证总是存在这样的一天。由于答案可能很大,返回对 <code>10<sup>9</sup> + 7</code> 取余后的结果。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>nextVisit = [0,0]
|
||
<strong>输出:</strong>2
|
||
<strong>解释:</strong>
|
||
- 第 0 天,你访问房间 0 。访问 0 号房间的总次数为 1 ,次数为奇数。
|
||
下一天你需要访问房间的编号是 nextVisit[0] = 0
|
||
- 第 1 天,你访问房间 0 。访问 0 号房间的总次数为 2 ,次数为偶数。
|
||
下一天你需要访问房间的编号是 (0 + 1) mod 2 = 1
|
||
- 第 2 天,你访问房间 1 。这是你第一次完成访问所有房间的那天。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>nextVisit = [0,0,2]
|
||
<strong>输出:</strong>6
|
||
<strong>解释:</strong>
|
||
你每天访问房间的次序是 [0,0,1,0,0,1,2,...] 。
|
||
第 6 天是你访问完所有房间的第一天。
|
||
</pre>
|
||
|
||
<p><strong>示例 3:</strong></p>
|
||
|
||
<pre>
|
||
<strong>输入:</strong>nextVisit = [0,1,2,0]
|
||
<strong>输出:</strong>6
|
||
<strong>解释:</strong>
|
||
你每天访问房间的次序是 [0,0,1,1,2,2,3,...] 。
|
||
第 6 天是你访问完所有房间的第一天。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == nextVisit.length</code></li>
|
||
<li><code>2 <= n <= 10<sup>5</sup></code></li>
|
||
<li><code>0 <= nextVisit[i] <= i</code></li>
|
||
</ul>
|