LeetCode 284. 顶端迭代器
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 284. 顶端迭代器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 題目
給定一個(gè)迭代器類的接口,接口包含兩個(gè)方法: next() 和 hasNext()。
設(shè)計(jì)并實(shí)現(xiàn)一個(gè)支持 peek() 操作的頂端迭代器 – 其本質(zhì)就是把原本應(yīng)由 next() 方法返回的元素 peek() 出來。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/peeking-iterator
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
// Below is the interface for Iterator, which is already defined for you. // **DO NOT** modify the interface for Iterator.class Iterator {struct Data;Data* data; public:Iterator(const vector<int>& nums);Iterator(const Iterator& iter);virtual ~Iterator();// Returns the next element in the iteration.int next();// Returns true if the iteration has more elements.bool hasNext() const; }; //----------------------以上不用提交----------class PeekingIterator : public Iterator {int curVal;bool end; public:PeekingIterator(const vector<int>& nums) : Iterator(nums) {end = false;if(Iterator::hasNext()){curVal = Iterator::next();}elseend = true;}int peek() {return curVal;}int next() {if(end)return -1;int ans = curVal;if(Iterator::hasNext())curVal = Iterator::next();elseend = true;return ans;}bool hasNext() const {return !end; } };4 ms 9.9 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 284. 顶端迭代器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 484. 寻找排列(找
- 下一篇: LeetCode 1222. 可以攻击国