google iterator 笔试考题.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
google iterator 笔试考题

Google iterator question 给一个MergedSortedStream 的class 包装一定数量的SortedStream,Stream 都有hasNext()和 next() 的方法,SortedStream 定义是从这个流读取的数据一定是升序的,现在让我实现 MergedSortedStream 的hasNext()和next()方法,从而达到MergedSortedStream 的next()返回 的数据也是升序的。大概思路跟leetcode 的merge k list 一样,用min heap 来做,但是这里 有个问题就是SortedStream 缺一个 peek()方法,我一开始没往定义一个wrapper class 那方 面想,被面试官提醒才突然想起来以前在地里看过的GOOGLE 面经有考过PeekIterator 的实 现,如出一辙。慌慌忙忙写完了wrapper class 时间已经到了 1) Why do we have interfaces? 2) What does synchronized do? 3) interface Iterator { Object next(); boolean hasNext(); } [3, 3, 2, 4, 5] while (hasNext()){ next(); } interface Stream { Object next(); boolean hasNext(); } [3, 3, 2, 4, ... ] /** Precondition: ever call to .next() returns the minimal value in the stream */ interface SortedStream { Comparables next(); boolean hasNext(); } [2, 3, 3, 4, ... ] while (hasNext()){ next(); } ListSortedStream list = [new SortedStream([2, 3, 3, 4, ... ]) [2, ... ] 如何实现iterator 的peek。 iterator 实现next hasnext,flatten list 交替输出 [[7 8 9] [] [2 3 5] [1 19]] 7 2 1 8 3 19 9 5 Google iterator question OO 题,java 中的iterator 使用的是什么design pattern ?decorator 就是个inner class。写出 代码并且使得iterator 可以查看前一个遍历的内容。有点记不清了,大致就是包装一下iterator 多出一个存储单元记录内容。 写一个PeekIterator,包装一个普通的Iterator,要实现peek()方法,返回当前iterator 指向的 元素,但是不能移动它。除此之外也要实现hasNext()和next()方法。第二题,给一个BST 的 Node,有父节点的指针,求该Node 的下一个Node。这一面感觉不错。 写一个EvenIterator(汗,这年头这么流行考iterator 么?),包装一个普通的Iterator,只返回 even number 。要求实现next()和 hasNext()方法。这一面感觉不太好,没想到先写个简单的 方法。最后时间到了还是有bug 没有修改完。 写jump iterator 类, 构造函数传入一个普通的iterator, 然后实现next(), hasNext(). next()返回 传入iterator 的next().next(), 就是每次跳过一个元素输出. 然后再实现一个 rotateIterator(), 构造函数传入 ListIteratorT, 实现 next(), hasNext(). 例 如: 传入的三个iterator 里面的值分别是[[1,2,3],[4,5,6], [7,8]], 那rotateIterator 的next()应该输出 [1,4,7,2,5,8,3,6]. 就

文档评论(0)

shaofang00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档