- 浏览: 184850 次
- 性别:
- 来自: 济南
文章分类
最新评论
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.
设计一个有peek操作的iterator,peek操作返回第一个元素,但是不删除。我们有很多种方法,简单的一个借助队列,将iterator中的元素放到队列中,用到队列的peek操作,但这样我们在内存中开辟了一块空间。我们还可以直接利用给定的iterator对象来处理。两种方法的代码如下:
1,借助队列实现
2,用iterator对象
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.
设计一个有peek操作的iterator,peek操作返回第一个元素,但是不删除。我们有很多种方法,简单的一个借助队列,将iterator中的元素放到队列中,用到队列的peek操作,但这样我们在内存中开辟了一块空间。我们还可以直接利用给定的iterator对象来处理。两种方法的代码如下:
1,借助队列实现
// Java Iterator interface reference: // https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html class PeekingIterator implements Iterator<Integer> { private Queue<Integer> queue; public PeekingIterator(Iterator<Integer> iterator) { // initialize any member here. queue = new LinkedList<Integer>(); while(iterator.hasNext()) queue.offer(iterator.next()); } // Returns the next element in the iteration without advancing the iterator. public Integer peek() { if(!queue.isEmpty()) return queue.peek(); return Integer.MAX_VALUE; } // hasNext() and next() should behave the same as in the Iterator interface. // Override them if needed. @Override public Integer next() { if(!queue.isEmpty()) return queue.poll(); return Integer.MAX_VALUE; } @Override public boolean hasNext() { return !queue.isEmpty(); } }
2,用iterator对象
// Java Iterator interface reference: // https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html class PeekingIterator implements Iterator<Integer> { private Iterator<Integer> iterator; private Integer current; public PeekingIterator(Iterator<Integer> iterator) { // initialize any member here. this.iterator = iterator; if(iterator.hasNext()) current = iterator.next(); } // Returns the next element in the iteration without advancing the iterator. public Integer peek() { return current; } // hasNext() and next() should behave the same as in the Iterator interface. // Override them if needed. @Override public Integer next() { int result = current; if(iterator.hasNext()) { current = iterator.next(); } else { current = null; } return result; } @Override public boolean hasNext() { return current != null; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 270Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 271You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 389Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 379Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 503Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 568Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 483Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 668Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 473The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 434Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 584Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 590Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 429All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 905Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 934Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 606Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 691Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 857Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 789You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 723For a undirected graph with tre ...
相关推荐
The siege in Peking, China against the world
在《高中Unit4 When Hamlet Meets Peking Opera》的课件设计中,我们不仅能让学生接触到英语学习的核心,还能领略到两种截然不同的戏剧艺术形式的魅力。 首先,我们不可忽视的是中西文化对比的学习点。这一板块通过...
京剧换脸_AI-Face-changing-in-Peking-Opera-
Image encoder/decoder-Useing Matlab-Peking Univ.
"PEKING.rar"这个压缩包文件正是为有志于深入学习和备考该课程的学生们提供的一份宝贵资源。 数字电子技术是电子工程和计算机科学的基础课程,它涵盖了逻辑门电路、组合逻辑电路、时序逻辑电路、存储器、数模与模数...
数字图像处理大作业,图像细粒度分类,CUB-200-2011,Peking University
图神经网络GNN数据集,生物信息学领域数据集,共有85张图,二分类,平均节点数为39,平均边数为77
《北京大学:地理信息系统概论》电子教案是一份专为北京大学本科阶段学习地理信息系统(GIS)的学生设计的教学资源。GIS作为一门结合地理学、计算机科学、遥感技术等多学科的交叉领域,对于理解和解决现代环境、城市...
本资源“精品--深度学习技术与应用大作业,Kaggle植物分类,Peking University.zip”聚焦于深度学习在植物分类问题上的实践,这通常涉及到卷积神经网络(CNNs)的应用。Kaggle是一个知名的全球数据科学竞赛平台,这...
北京大学OJ_ACM题集是面向编程爱好者和竞赛选手的一份宝贵资源,它包含了北京大学为ACM(国际大学生程序设计竞赛)所准备的训练题目。这个题集的特点在于它的离线性质,允许用户在没有网络连接的情况下也能进行编程...
主体内容: 京剧,又称平剧或京戏,是中国最具代表性的传统戏曲形式,以其独特的艺术魅力在北京为中心,流传于全国各地。京剧的历史可以追溯到清朝乾隆五十五年,当时的四大徽班——三庆、四喜、春台、和春,从南方...
在IT行业中,尤其是在航空业的票务系统里,"黑屏预订资料"通常指的是使用旧式的字符界面(通常是黑色背景)进行机票预订的操作系统。这种系统对于非专业人员可能看起来像"黑屏",但实际上是一种专业级的订座系统,如...
在本节高中英语课程“当哈姆雷特遇见京剧”中,我们将探索如何将莎士比亚的经典悲剧《哈姆雷特》与中国的传统戏曲——京剧相结合,以此激发学生对英语文学和中国传统文化的兴趣。课程围绕人教版高中英语必修二Unit4...
老北京西山地图含交通线
北京大学计算智能研究室几位计算智能教授的辛苦结晶,包含粒子群算法源代码,PPT文档说明,十五个典型的测试函数,算法注释详尽,简明扼要,是难得的粒子群算法学习材料
从传播学角度看,Moment in Peking 是一种传意写作。其特点在于作者明确的写作意图与强烈的受众意识。作者林语堂先生了解西方受众的期待域并预知作品所容涵的汉文化信息对于西方受众的理解所存在的障碍:读者对英语...
POJ,全称Peking University Online Judge,是北京大学开发的一个在线编程题目评测系统,它允许用户提交自己编写的代码,系统会对代码进行自动测试,评估其正确性和运行效率。这一离线版意味着用户可以在没有网络...
在这个项目中,CUB-200-2011数据集被用作训练和测试的数据来源,这是由斯坦福大学和北京大学(Peking University)联合创建的一个广泛用于鸟类识别的基准数据集。 CUB-200-2011数据集包含200个不同的鸟类类别,每个...
molecular biology in Peking University
压缩包内的子文件只有一个名为 "2021105120137-彭欣茹-Peking duck" 的文件,但这个文件名同样没有明确指出与IT相关的主题或知识点。 如果这个 "Peking duck" 文件是一个文档、代码、数据集或其他可以解析的内容,...