LeetCode *** 284. Peeking Iterator
2016-04-17 20:42
344 查看
题目:
Given an Iterator class interface with methods:
Here is an example. Assume that the iterator is initialized to the beginning of the list:
Call
Now you call
You call
分析:
无。
パナマ与最近的一些政策与国民。我对于这个国家毫无感情。希望自己能够快点离开。
代码:
Given an Iterator class interface with methods:
next()and
hasNext(), design and implement a PeekingIterator that support the
peek()operation -- it essentially peek() at the element that will be returned by the next call to next().
Here is an example. Assume that the iterator is initialized to the beginning of the list:
[1, 2, 3].
Call
next()gets you 1, the first element in the list.
Now you call
peek()and it returns 2, the next element. Calling
next()after that still return 2.
You call
next()the final time and it returns 3, the last element. Calling
hasNext()after that should return false.
分析:
无。
パナマ与最近的一些政策与国民。我对于这个国家毫无感情。希望自己能够快点离开。
代码:
// 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: bool saved=false; int num; 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. saved=false; } // Returns the next element in the iteration without advancing the iterator. int peek() { if(saved)return num; else { num=next(); saved=true; return num; } } // hasNext() and next() should behave the same as in the Iterator interface. // Override them if needed. int next() { if(saved){ saved=false; return num; } else return Iterator::next(); } bool hasNext() const { return saved||Iterator::hasNext(); } };
相关文章推荐
- Android位置服务--用户定位Location
- ubuntu,kali,debian等Linux更新源(国内最好的)
- 缓存策略
- 关联规则中最小支持度和最小置信度
- linux 命令三
- wps-奇数偶数页眉不同设定方法
- 重识Javascript系列---ECMAScript内置对象
- 嵌入式复位流程研究与优化
- 在VS2013平台下,用VB.net 连接Access数据库
- 遍历map
- WebService学习总结(一)——WebService的相关概念
- 使用wordpress搭建的网站去掉域名中的wordpress
- 彻底解决 Android Studio 乱码问题
- c# 的 pictureBox 添加滚动条
- 计算机网络中的一些概念
- hdu2444The Accomodation of Students (最大匹配+推断是否为二分图)
- 20145239杜文超 《Java程序设计》第7周学习总结
- HDU1503:Advanced Fruits(LCS)
- 数据库 --> SQL 和 NoSQL 的区别
- WPF调用图片路径,或资源图片