mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-09 09:21:40 +08:00
96 lines
3.3 KiB
HTML
96 lines
3.3 KiB
HTML
<p>给你两个数组:<code>instructions</code> 和 <code>values</code>,数组的长度均为 <code>n</code>。</p>
|
||
|
||
<p>你需要根据以下规则模拟一个过程:</p>
|
||
|
||
<ul>
|
||
<li>从下标 <code>i = 0</code> 的第一个指令开始,初始得分为 0。</li>
|
||
<li>如果 <code>instructions[i]</code> 是 <code>"add"</code>:
|
||
<ul>
|
||
<li>将 <code>values[i]</code> 加到你的得分中。</li>
|
||
<li>移动到下一个指令 <code>(i + 1)</code>。</li>
|
||
</ul>
|
||
</li>
|
||
<li>如果 <code>instructions[i]</code> 是 <code>"jump"</code>:
|
||
<ul>
|
||
<li>移动到下标为 <code>(i + values[i])</code> 的指令,但不修改你的得分。</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<p>当以下任一情况发生时,过程会终止:</p>
|
||
|
||
<ul>
|
||
<li>越界(即 <code>i < 0</code> 或 <code>i >= n</code>),或</li>
|
||
<li>尝试再次执行已经执行过的指令。被重复访问的指令不会再次执行。</li>
|
||
</ul>
|
||
|
||
<p>返回过程结束时的得分。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">instructions = ["jump","add","add","jump","add","jump"], values = [2,1,3,1,-2,-3]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">1</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>从下标 0 开始模拟过程:</p>
|
||
|
||
<ul>
|
||
<li>下标 0:指令是 <code>"jump"</code>,移动到下标 <code>0 + 2 = 2</code>。</li>
|
||
<li>下标 2:指令是 <code>"add"</code>,将 <code>values[2] = 3</code> 加到得分中,移动到下标 3。得分变为 3。</li>
|
||
<li>下标 3:指令是 <code>"jump"</code>,移动到下标 <code>3 + 1 = 4</code>。</li>
|
||
<li>下标 4:指令是 <code>"add"</code>,将 <code>values[4] = -2</code> 加到得分中,移动到下标 5。得分变为 1。</li>
|
||
<li>下标 5:指令是 <code>"jump"</code>,移动到下标 <code>5 + (-3) = 2</code>。</li>
|
||
<li>下标 2:已经访问过。过程结束。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">instructions = ["jump","add","add"], values = [3,1,1]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">0</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>从下标 0 开始模拟过程:</p>
|
||
|
||
<ul>
|
||
<li>下标 0:指令是 <code>"jump"</code>,移动到下标 <code>0 + 3 = 3</code>。</li>
|
||
<li>下标 3:越界。过程结束。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 3:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">instructions = ["jump"], values = [0]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">0</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>从下标 0 开始模拟过程:</p>
|
||
|
||
<ul>
|
||
<li>下标 0:指令是 <code>"jump"</code>,移动到下标 <code>0 + 0 = 0</code>。</li>
|
||
<li>下标 0:已经访问过。过程结束。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>n == instructions.length == values.length</code></li>
|
||
<li><code>1 <= n <= 10<sup>5</sup></code></li>
|
||
<li><code>instructions[i]</code> 只能是 <code>"add"</code> 或 <code>"jump"</code>。</li>
|
||
<li><code>-10<sup>5</sup> <= values[i] <= 10<sup>5</sup></code></li>
|
||
</ul>
|