1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-09-09 09:21:40 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
Files
leetcode-problemset/leetcode-cn/problem (Chinese)/执行指令后的得分 [calculate-score-after-performing-instructions].html
2025-04-24 21:29:06 +08:00

96 lines
3.3 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>给你两个数组:<code>instructions</code><code>values</code>,数组的长度均为 <code>n</code></p>
<p>你需要根据以下规则模拟一个过程:</p>
<ul>
<li>从下标&nbsp;<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>移动到下标为&nbsp;<code>(i + values[i])</code> 的指令,但不修改你的得分。</li>
</ul>
</li>
</ul>
<p>当以下任一情况发生时,过程会终止:</p>
<ul>
<li>越界(即 <code>i &lt; 0</code><code>i &gt;= n</code>),或</li>
<li>尝试再次执行已经执行过的指令。被重复访问的指令不会再次执行。</li>
</ul>
<p>返回过程结束时的得分。</p>
<p>&nbsp;</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>从下标&nbsp;0 开始模拟过程:</p>
<ul>
<li>下标 0指令是 <code>"jump"</code>,移动到下标&nbsp;<code>0 + 2 = 2</code></li>
<li>下标 2指令是 <code>"add"</code>,将 <code>values[2] = 3</code> 加到得分中,移动到下标&nbsp;3。得分变为 3。</li>
<li>下标 3指令是 <code>"jump"</code>,移动到下标&nbsp;<code>3 + 1 = 4</code></li>
<li>下标 4指令是 <code>"add"</code>,将 <code>values[4] = -2</code> 加到得分中,移动到下标&nbsp;5。得分变为 1。</li>
<li>下标 5指令是 <code>"jump"</code>,移动到下标&nbsp;<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>从下标&nbsp;0 开始模拟过程:</p>
<ul>
<li>下标 0指令是 <code>"jump"</code>,移动到下标&nbsp;<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>从下标&nbsp;0 开始模拟过程:</p>
<ul>
<li>下标 0指令是 <code>"jump"</code>,移动到下标&nbsp;<code>0 + 0 = 0</code></li>
<li>下标 0已经访问过。过程结束。</li>
</ul>
</div>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>n == instructions.length == values.length</code></li>
<li><code>1 &lt;= n &lt;= 10<sup>5</sup></code></li>
<li><code>instructions[i]</code> 只能是 <code>"add"</code><code>"jump"</code></li>
<li><code>-10<sup>5</sup> &lt;= values[i] &lt;= 10<sup>5</sup></code></li>
</ul>