1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/对数组执行操作 [apply-operations-to-an-array].html
2022-11-09 15:08:24 +08:00

51 lines
2.4 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>给你一个下标从 <strong>0</strong> 开始的数组 <code>nums</code> ,数组大小为 <code>n</code> ,且由 <strong>非负</strong> 整数组成。</p>
<p>你需要对数组执行 <code>n - 1</code> 步操作,其中第 <code>i</code> 步操作(从 <strong>0</strong> 开始计数)要求对 <code>nums</code> 中第 <code>i</code> 个元素执行下述指令:</p>
<ul>
<li>如果 <code>nums[i] == nums[i + 1]</code> ,则 <code>nums[i]</code> 的值变成原来的 <code>2</code> 倍,<code>nums[i + 1]</code> 的值变成 <code>0</code> 。否则,跳过这步操作。</li>
</ul>
<p>在执行完 <strong>全部</strong> 操作后,将所有 <code>0</code> <strong>移动</strong> 到数组的 <strong>末尾</strong></p>
<ul>
<li>例如,数组 <code>[1,0,2,0,0,1]</code> 将所有 <code>0</code> 移动到末尾后变为 <code>[1,2,1,0,0,0]</code></li>
</ul>
<p>返回结果数组。</p>
<p><strong>注意</strong> 操作应当 <strong>依次有序</strong> 执行,而不是一次性全部执行。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>nums = [1,2,2,1,1,0]
<strong>输出:</strong>[1,4,2,0,0,0]
<strong>解释:</strong>执行以下操作:
- i = 0: nums[0] 和 nums[1] 不相等,跳过这步操作。
- i = 1: nums[1] 和 nums[2] 相等nums[1] 的值变成原来的 2 倍nums[2] 的值变成 0 。数组变成 [1,<em><strong>4</strong></em>,<em><strong>0</strong></em>,1,1,0] 。
- i = 2: nums[2] 和 nums[3] 不相等,所以跳过这步操作。
- i = 3: nums[3] 和 nums[4] 相等nums[3] 的值变成原来的 2 倍nums[4] 的值变成 0 。数组变成 [1,4,0,<em><strong>2</strong></em>,<em><strong>0</strong></em>,0] 。
- i = 4: nums[4] 和 nums[5] 相等nums[4] 的值变成原来的 2 倍nums[5] 的值变成 0 。数组变成 [1,4,0,2,<em><strong>0</strong></em>,<em><strong>0</strong></em>] 。
执行完所有操作后,将 0 全部移动到数组末尾,得到结果数组 [1,4,2,0,0,0] 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>nums = [0,1]
<strong>输出:</strong>[1,0]
<strong>解释:</strong>无法执行任何操作,只需要将 0 移动到末尾。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= nums.length &lt;= 2000</code></li>
<li><code>0 &lt;= nums[i] &lt;= 1000</code></li>
</ul>