1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-10-12 17:05:15 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
Files
leetcode-problemset/leetcode-cn/problem (Chinese)/用栈操作构建数组 [build-an-array-with-stack-operations].html
2025-09-29 14:43:44 +08:00

69 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>给你一个数组 <code>target</code> 和一个整数 <code>n</code></p>
<p>给你一个空栈和两种操作:</p>
<ul>
<li><code>"Push"</code>:将一个整数加到栈顶。</li>
<li><code>"Pop"</code>:从栈顶删除一个整数。</li>
</ul>
<p>同时给定一个范围 <code>[1, n]</code> 中的整数流。</p>
<p>使用两个栈操作使栈中的数字(从底部到顶部)等于 <code>target</code>。你应该遵循以下规则:</p>
<ul>
<li>如果整数流不为空,从流中选取下一个整数并将其推送到栈顶。</li>
<li>如果栈不为空,弹出栈顶的整数。</li>
<li>如果,在任何时刻,栈中的元素(从底部到顶部)等于 <code>target</code>,则不要从流中读取新的整数,也不要对栈进行更多操作。</li>
</ul>
<p>请返回遵循上述规则构建&nbsp;<code>target</code> 所用的操作序列。如果存在多个合法答案,返回 <strong>任一</strong> 即可。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>target = [1,3], n = 3
<strong>输出:</strong>["Push","Push","Pop","Push"]
<strong>解释:</strong>一开始栈为空。最后一个元素是栈顶。<strong>
</strong>从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
从栈顶删除整数。s = [1]。
从流中读取 3 并推入数组。s = [1,3]。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>target = [1,2,3], n = 3
<strong>输出:</strong>["Push","Push","Push"]
<strong>解释:</strong>一开始栈为空。最后一个元素是栈顶。
从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
从流中读取 3 并推入数组。s = [1,2,3]。
</pre>
<p><strong>示例 3</strong></p>
<pre>
<strong>输入:</strong>target = [1,2], n = 4
<strong>输出:</strong>["Push","Push"]
<strong>解释:</strong>一开始栈为空。最后一个元素是栈顶。
从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
由于栈(从底部到顶部)等于 target我们停止栈操作。
从流中读取整数 3 的答案不被接受。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= target.length &lt;= 100</code></li>
<li><code>1 &lt;= n &lt;= 100</code></li>
<li><code>1 &lt;= target[i] &lt;= n</code></li>
<li><code>target</code> 严格递增</li>
</ul>