日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 284. 顶端迭代器

發(fā)布時(shí)間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 284. 顶端迭代器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 題目

給定一個(gè)迭代器類的接口,接口包含兩個(gè)方法: next() 和 hasNext()。
設(shè)計(jì)并實(shí)現(xiàn)一個(gè)支持 peek() 操作的頂端迭代器 – 其本質(zhì)就是把原本應(yīng)由 next() 方法返回的元素 peek() 出來。

示例: 假設(shè)迭代器被初始化為列表 [1,2,3]。調(diào)用 next() 返回 1,得到列表中的第一個(gè)元素。 現(xiàn)在調(diào)用 peek() 返回 2,下一個(gè)元素。在此之后調(diào)用 next() 仍然返回 2。 最后一次調(diào)用 next() 返回 3,末尾元素。在此之后調(diào)用 hasNext() 應(yīng)該返回 false。進(jìn)階: 你將如何拓展你的設(shè)計(jì)?使之變得通用化,從而適應(yīng)所有的類型,而不只是整數(shù)型?

來源:力扣(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。