1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-11 02:58:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/顶端迭代器 [peeking-iterator].html
2022-03-29 12:43:11 +08:00

48 lines
2.2 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>请你在设计一个迭代器,在集成现有迭代器拥有的&nbsp;<code>hasNext</code><code>next</code> 操作的基础上,还额外支持 <code>peek</code> 操作。</p>
<p>实现 <code>PeekingIterator</code> 类:</p>
<ul>
<li><code>PeekingIterator(Iterator&lt;int&gt; nums)</code> 使用指定整数迭代器&nbsp;<code>nums</code> 初始化迭代器。</li>
<li><code>int next()</code> 返回数组中的下一个元素,并将指针移动到下个元素处。</li>
<li><code>bool hasNext()</code> 如果数组中存在下一个元素,返回 <code>true</code> ;否则,返回 <code>false</code></li>
<li><code>int peek()</code> 返回数组中的下一个元素,但 <strong></strong> 移动指针。</li>
</ul>
<p><strong>注意:</strong>每种语言可能有不同的构造函数和迭代器&nbsp;<code>Iterator</code>,但均支持 <code>int next()</code><code>boolean hasNext()</code> 函数。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>
["PeekingIterator", "next", "peek", "next", "next", "hasNext"]
[[[1, 2, 3]], [], [], [], [], []]
<strong>输出:</strong>
[null, 1, 2, 2, 3, false]
<strong>解释:</strong>
PeekingIterator peekingIterator = new PeekingIterator([1, 2, 3]); // [<u><strong>1</strong></u>,2,3]
peekingIterator.next(); // 返回 1 ,指针移动到下一个元素 [1,<u><strong>2</strong></u>,3]
peekingIterator.peek(); // 返回 2 ,指针未发生移动 [1,<u><strong>2</strong></u>,3]
peekingIterator.next(); // 返回 2 ,指针移动到下一个元素 [1,2,<u><strong>3</strong></u>]
peekingIterator.next(); // 返回 3 ,指针移动到下一个元素 [1,2,3]
peekingIterator.hasNext(); // 返回 False
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= nums.length &lt;= 1000</code></li>
<li><code>1 &lt;= nums[i] &lt;= 1000</code></li>
<li><code>next</code><code>peek</code> 的调用均有效</li>
<li><code>next</code><code>hasNext</code><code>peek </code>最多调用&nbsp; <code>1000</code></li>
</ul>
<p>&nbsp;</p>
<p><strong>进阶:</strong>你将如何拓展你的设计?使之变得通用化,从而适应所有的类型,而不只是整数型?</p>