LeetCode——Peeking Iterator
来源:互联网 发布:南京市软件行业协会 编辑:程序博客网 时间:2024/04/30 23:10
先自己写了个简单粗糙的,然后又看了提示中给的参考答案,模仿着写了一个
// 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 {public:PeekingIterator(const vector<int>& nums):Iterator(nums) { // Initialize any member here. // **DO NOT** save a copy of nums and manipulate it directly. // You should only use the Iterator interface methods. peekedElement = Iterator::next(); hasPeeked = true;} // Returns the next element in the iteration without advancing the iterator.int peek() { if(!hasPeeked) { peekedElement = Iterator::next(); hasPeeked = true; } return peekedElement;}// hasNext() and next() should behave the same as in the Iterator interface.// Override them if needed.int next() { if(hasPeeked) { hasPeeked = false; return peekedElement; } else { return Iterator::next(); }}bool hasNext() const { return hasPeeked || Iterator::hasNext();}private: int peekedElement; bool hasPeeked;};
基本思路是,用变量hasPeeked判断peekedElement保存的是否为所需的元素,若是,则无需调用基类的next()函数,直接使用这个变量。如此一来,增加peek功能不影响时间复杂度。
0 0
- LeetCode——Peeking Iterator
- leetcode——284——Peeking Iterator
- leetcode 284 Peeking Iterator
- [LeetCode 284] Peeking Iterator
- leetcode 284: Peeking Iterator
- Leetcode Peeking Iterator
- *LeetCode-Peeking Iterator
- [Leetcode] Peeking Iterator
- [Leetcode]Peeking Iterator
- leetcode Peeking Iterator
- Peeking Iterator -- leetcode
- leetcode之Peeking Iterator
- [LeetCode] Peeking Iterator
- LeetCode Peeking Iterator 迭代器
- 【leetcode】Peeking Iterator
- Leetcode: Peeking Iterator
- LeetCode 284 Peeking Iterator
- LeetCode Peeking Iterator
- JAVA三星题之playing a TicTacToe game
- 第三部分 ARM裸机系列之教你学会刷操作系统
- Java 中泛型的全面解析
- hdu 3746 Cyclic Nacklace KMP中的nex[]应用
- poj 1602 昂贵的聘礼
- LeetCode——Peeking Iterator
- Help is needed for Dexter
- JQuery-Jquery的TreeGrid插件
- Nginx+Tomcat 做请求分发以及负载均衡
- Android 反编译详解
- Java基础之查找文件名&删除文件夹和文件
- 第二期项目前台详细分析
- ACE线程管理(一)
- OC之Block的初级学习