由买买提看人间百态

topics

全部话题 - 话题: hasnext
1 2 3 4 5 下页 末页 (共5页)
K*******i
发帖数: 399
1
来自主题: JobHunting版 - hasNext的迭代器题怎么做?
我已经是第N次在不同的面经里看到这道题出现了。
这题到底想考察什么(设计模式还是算法?),有什么trick?
template class iterator {
bool hasNext();
T next();
}
现在要写一个decorator(wrapper),里面有一个T peek()函数,它返回的是当前指向的
数据,如果反复call它,它应该回复一样的数(如果call next()再用peek(),返
回的就是下一个数据)
p****e
发帖数: 4
2
My solution:
class FileCompare {
public boolean isDistanceZeroOrOne(IntFileIterator a, IntFileIterator b) {
while (a.hasNext() && b.hasNext()) {
int curA = a.next();
int curB = b.next();
if (curA != curB) {
int prevA = curA;
int prevB = curB;
if (a.hasNext() && b.hasNext()) {
curA = a.next();
curB = b.next();
if (curA != prevB && curB != prevA) {
// This means neither prevA nor prevB is the extra item added... 阅读全帖
l*****n
发帖数: 246
3
第一次贴代码,错了勿怪。。。。
public boolean isDistanceZeroOrOne(IntFileIterator a, IntFileIterator b) {
int shift = 0;
while(a.hasNext() && b.hasNext()){
int aPre = a.next();
int bPre = b.next();
if(aPre!=bPre){
if(shift>0){return false;}
if(!a.hasNext() && !b.hasNext()){return true;}
if(a.hasNext() && b.hasNext()){
shift=1;
int aNext = a.next();
int bNext = b.next();
if(aNext =... 阅读全帖
w******j
发帖数: 185
4
来自主题: JobHunting版 - bst中序遍历c++ class iterator
来个java的吧,带parent pointer和不带的,preorder和inorder的
import java.util.NoSuchElementException;
import java.util.Stack;
public class BST {
private Node root;
private static class Node {
int key;
Node left, right, parent;
Node(int key) {
this.key = key;
}
}
public BST(){

}

public BSTIterator inorderIterator() {
return new InorderIterator();
}
public BSTIterator preorderIterator() {
return new PreorderI... 阅读全帖
w******j
发帖数: 185
5
来个java的吧,带parent pointer和不带的,preorder和inorder的
import java.util.NoSuchElementException;
import java.util.Stack;
public class BST {
private Node root;
private static class Node {
int key;
Node left, right, parent;
Node(int key) {
this.key = key;
}
}
public BST(){

}

public BSTIterator inorderIterator() {
return new InorderIterator();
}
public BSTIterator preorderIterator() {
return new PreorderI... 阅读全帖
S*******C
发帖数: 822
6
这答案不对,看我测试结果,IntFileIterator对象是mutable的
[1, 2, 3, 4, 5, 9, 8, 7, 6]
[1, 2, 3, 4, 5, 4, 8, 7, 6]
true
=====================
[1, 2, 3, 4, 5, 9, 8, 7, 6]
[1, 2, 3, 4, 5, 9, 7, 6]
false
=====================
[1, 2, 3, 4, 5, 9, 8, 7, 6]
[1, 2, 3, 4, 5, 9, 8, 7, 1, 6]
false
=====================
[1, 2, 3, 4, 5, 9, 8, 7, 6]
[1, 2, 3, 4, 5, 9, 8, 7, 6, 3, 2]
false
=====================
[1, 2, 3, 4, 5, 4, 8, 7, 6]
[1, 2, 3, 4, 5, 9, 7, 6]
false
=====================
[1, 2, 3, 4, 5, 4, 8, 7, 6]
[1, 2, 3, ... 阅读全帖
z*******3
发帖数: 13709
7
来自主题: JobHunting版 - 面完G的电面了,忐忑
那就是预先取一个next值出来,寄存在class里面
然后设置hasNext()返回为true
next()的时候,再弹出当前这个,再预取一个出来寄存到现在这个class里面
class Wrapper{
private T tmp;
private boolean hasNext = false;
Wrapper(Iterator it){
if(it.hasNext()){
tmp = it.next();
hasNext = true;
}
}
public boolean hasNext(){return hasNext;}
public T peek(){return tmp};
public T next() throws Exception{
if(hasNext){
T t = tmp;
hasNext = it.hasNext();
i... 阅读全帖
f*******t
发帖数: 7549
8
来自主题: JobHunting版 - 问一道题
Java版本比较方便,可以用ArrayList自带的iterator。C++如果只需要实现类似于Java
iterator的两个接口,倒是不难。
public class DoubleLevelArrayListIterator {
private Iterator> itLvl1;
private Iterator itLvl2;

public DoubleLevelArrayListIterator(ArrayList> a) {
itLvl1 = a.iterator();
itLvl2 = null;
}

public boolean hasNext() {
if (itLvl2 != null && itLvl2.hasNext()) {
return true;
} else {
while ((itLvl2 == ... 阅读全帖
s******s
发帖数: 2721
9
Code snippets:
boolean isDistanceZero(IntFileIterator a, IntFileIterator b) {
while (a.hasNext() && b.hasNext()) {
if (a.next() != b.next()) {
return false;
}
}
return a.hasNext() == b.hasNext();
}
boolean isDistanceZeroOrOne(IntFileIterator a, IntFileIterator b) {
while (a.hasNext() && b.hasNext()) {
IntFileIterator curA = a;
IntFileIterator curB = b;
if (a.next() != b.next()) {
return isDistanceZero(a, curB) || isDistanceZero(curA, b)... 阅读全帖
c*****m
发帖数: 271
10
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
试着写一个python的
import unittest
class DeepIterator():
def __init__(self, deep_list):
if deep_list == None:
self.iterator_stack = []
else:
self.iterator_stack = [[deep_list, 0]]
self.cur_value = None
def hasNext(self):
#the iterator stack is empty, False
if len(self.iterator_stack) == 0:
return False

#ensure hasNext() can be called many times before next()
if self.cur_value != None:
... 阅读全帖
y*****e
发帖数: 712
11
他的意思是一旦碰到两个不同的,就把可能的三种情况,ins_a (a has extra letter),
ins_b(b has extra letter), replace都turn on, diff表示至少有一个不同的,这
时也turn on. 如果一直跑到最后所有的letter都相同,diff就remain as false, 也
return false.
一旦碰到两个不一样的,就要一直比较currA, currB, preA, preB, 如果preA !=
currB, 但insertionB是true, 说明insert extra letter to B是不可能的,就turn
off ins_B.同理其他的判断。
跑到最后总结,看A还是B还剩一个letter, 或者两者都跑到头了,再做判断。
我把这个超级genius的答案改写成java的了。。。。
public class FileCompare {
public boolean isDistanceZeroOrOne(IntFileIterator a,
IntFileIterator b) {
... 阅读全帖
m*****g
发帖数: 71
12
只用constant内存的DP解法,自测能过所有test case
public boolean isDistanceZeroOrOne(IntFileIterator a, IntFileIterator b)
{
int up = 1;
int left = 1;
int diagnal = 0;
int dist = 0;
int currA = 0;
int currB = 0;
int prevA = 0;
int prevB = 0;

if (a.hasNext() && b.hasNext()) {
prevA = a.next();
prevB = b.next();
if (prevA == prevB) {
dist = 0;
} else {
... 阅读全帖
S*******C
发帖数: 822
13
下面答案能过所有test case,如果谁发现有错请告诉我
public boolean isDistanceZeroOrOne(IntFileIterator a, IntFileIterator b)
{
boolean ins_a = false, ins_b = false, replace = false, diff = false;
int pre_a = 0, pre_b = 0;
while (a.hasNext() && b.hasNext()) {
int cur_a = a.next(), cur_b = b.next();
if (!ins_a && !ins_b && !replace) {
if (cur_a != cur_b) {
ins_a = ins_b = replace = diff = true;
}
} else {... 阅读全帖
y*******5
发帖数: 887
14
来自主题: JobHunting版 - 求指点一道G家Iterator的题目
用composition pattern:
1:---
package NestedIterator;
public interface NestedNodeList extends Iterable {
}
2:---
package NestedIterator;
import java.util.Iterator;
public class Node implements NestedNodeList {
private E val;
public Node(E val) {
this.val = val;
}
@Override
public Iterator iterator() {
return new NodeIterator();
}
private class NodeIterator implements Iterator {
private boolean iterated = false;
@Override... 阅读全帖
p*****2
发帖数: 21240
15
来自主题: JobHunting版 - 问一道题
class MyIterator(v:Vector[Vector[Int]]){
private[this] val vector1=v.iterator
private[this] var vector2:Iterator[Int]=null

def hasNext():Boolean={
if(vector2!=null && vector2.hasNext) return true
vector2=null
while(vector1.hasNext && (vector2==null || !vector2.hasNext))
{
val next=vector1.next
if(next!=null) vector2=next.iterator
}

vector2!=null && vector2.hasNext
}

def next():Int={
... 阅读全帖
gw
发帖数: 2175
16
来自主题: Programming版 - 再来讨论一直算法课的作业吧
这个啥意思?
Test 9: Create two independent iterators to same randomized queue
* N = 10
- student iterator 1 hasNext() = false
- student iterator 2 hasNext() = false
- reference iterator hasNext() = true
* N = 1000
- student iterator 1 hasNext() = false
- student iterator 2 hasNext() = false
- reference iterator hasNext() = true
==> FAILED
g*******s
发帖数: 2963
17
来自主题: JobHunting版 - 面完G的电面了,忐忑
这个行不?constructor里我pass了container(这里是vector),因为我不知道没有
container该怎么写hasNext()? 如果假设原始iterator已经有hasNext()和next()了,
那这俩函数应该不用改吧?看成black box就行了,直接在peek里引入个temp变量就行
了。
#include
#include
using namespace std;
template
class Wrapper {
public:
Wrapper(vector &v,
typename vector::iterator it)
:_vec(v),_it(it),_tempIt(it){
_it = _vec.begin();
};
bool hasNext(){
_tempIt = _it;
return (++_tempIt)!=_vec.end();
};
... 阅读全帖
p*****2
发帖数: 21240
18
来自主题: JobHunting版 - Google onsite归来

我写了一个。
Iterator it=null;
Predicate pr=null;
T next=null;
Iterator conditionIterator(Iterator input, Predicate pred)
{
it=input;
pr=pred;
hasNext();
}
T next()
{
T ret=next;
hasNext();
return ret;
}
T hasNext()
{
if(next==null)
{
while(it.hasNext())
{
next=it.hasNext();
if(pr.accept(next))
break;
else
next=null;
}
}
return next!=null;
}
l*********h
发帖数: 15
19
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
LinkedIn 的题
"Program an iterator for a List which may include nodes or List i.e. * {0,
{1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
今天翻Design Pattern 的时候看到iterator and composite pattern 突然发现这个和
前一阵一直不会写的Deep Iterator有点像
大概思路是这样的,用一个stack 存放 iterator 如果到了最底层是Integer就输出,
如果iterator.next还是个List,就把这个List的iterator 扔到stack里面,然后
Recusion next()方法。每回从stack里面取的时候看看那个iterator有没有用完,如果
已经遍历到最后用完了,就直接扔出stack
底下是程序
import java.util.ArrayList;
import java.util.Iterator;
import java.util.... 阅读全帖
D*T
发帖数: 75
20
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
想了一下,这个问题好像不是那么容易。楼主的code如果末尾有个空的List会出错。我
不太懂C++所以pdu的只是半懂,不过感觉我的想法和ta估计差不多。moridin的code很
神奇,我实在看不太懂。
下面是我的code,搞ArrayList还成,搞LinkedList可能就惨了。另外remove好像是ok
的。
import java.util.*;
class ArrayPosition {
ArrayList array;
int index;
ArrayPosition(ArrayList array) {
this.array = array;
index = 0;
}
Object peekItem() {
return array.get(index);
}
Object takeItem() {
return array.get(index++);
}
}
public class DeepIteratorII implements ... 阅读全帖
l*********h
发帖数: 15
21
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
LinkedIn 的题
"Program an iterator for a List which may include nodes or List i.e. * {0,
{1,2}, 3 ,{4,{5, 6}}} Iterator returns 0 - 1 - 2 - 3 - 4 - 5 - 6"
今天翻Design Pattern 的时候看到iterator and composite pattern 突然发现这个和
前一阵一直不会写的Deep Iterator有点像
大概思路是这样的,用一个stack 存放 iterator 如果到了最底层是Integer就输出,
如果iterator.next还是个List,就把这个List的iterator 扔到stack里面,然后
Recusion next()方法。每回从stack里面取的时候看看那个iterator有没有用完,如果
已经遍历到最后用完了,就直接扔出stack
底下是程序
import java.util.ArrayList;
import java.util.Iterator;
import java.util.... 阅读全帖
D*T
发帖数: 75
22
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
想了一下,这个问题好像不是那么容易。楼主的code如果末尾有个空的List会出错。我
不太懂C++所以pdu的只是半懂,不过感觉我的想法和ta估计差不多。moridin的code很
神奇,我实在看不太懂。
下面是我的code,搞ArrayList还成,搞LinkedList可能就惨了。另外remove好像是ok
的。
import java.util.*;
class ArrayPosition {
ArrayList array;
int index;
ArrayPosition(ArrayList array) {
this.array = array;
index = 0;
}
Object peekItem() {
return array.get(index);
}
Object takeItem() {
return array.get(index++);
}
}
public class DeepIteratorII implements ... 阅读全帖
f**********t
发帖数: 1001
23
来自主题: JobHunting版 - LinkedIn 面试题讨论
class Component {
public:
virtual char next() = 0;
virtual bool hasNext() = 0;
virtual void traverse() = 0;
};
class Leaf : public Component {
char val;
bool _hasNext;
public:
Leaf(char v) : val(v), _hasNext(true) { }
char next() {
_hasNext = false;
return val;
}
bool hasNext() {
return _hasNext;
}
void traverse() {
cout << val << ' ';
}
};
class Composite : public Component {
vector children;
size_t _idx = 0;
void goNext() {
while (_... 阅读全帖
m*****n
发帖数: 204
24

The following is an O(nlgn) solution for string of size n.
It maintains a heap for eligible chars, preferring longer streams.
Ineligible chars are maintained in a candidate queue, and added back
to the working queue when their position constraint is removed.
public class MinDistance {
public String rearrange(String source, int distance) {
// TODO Check params.

// WorkingQueue of eligible streams. Longest stream at head,
// but BackupStream at tail.
PriorityQueue阅读全帖
s******7
发帖数: 1758
25
来自主题: JobHunting版 - 刷了半天题
好像不难,我写个试试,大家给看看
IntergerIterator iter;
NoSuchElementException e = new NoSuchElementException();
public int next(){
if(!iter.hasNext()) throw e;
int n = iter.next();
return n>0?n:next();
}
public boolean hasNext(){
if(!iter.hasNext()) return false;
int n = iter.next();
return n>0?true:hasNext();
}
public void remove(){
iter.remove();
}
想简单了,hasNext移动iter,见笑了
R*********d
发帖数: 34
26
来自主题: JobHunting版 - 刷了半天题
方便起见,就用了ArrayList,不过意思是一样的。
public class PositiveIntegerIterator
{
private int prev = -1;
private Iterator it;
public PositiveIntegerIterator(Iterator it){
this.it = it;
}
public boolean hasNext(){
if(prev > 0){
return true;
}
while(it.hasNext()){
prev = it.next();
if(prev > 0){
return true;
}
}
return false;
}
public Integer next(){
... 阅读全帖
s******7
发帖数: 1758
27
来自主题: JobHunting版 - 刷了半天题
嗯,看到了,想简单了
单独一个变量记录下个一个正数, 不过remove有问题, 因为hasNext过后,指针到下一
个正数, 就没办法删掉上一个next过的正数
比如 1,-1,2
next(); // get 1,iter到1后面
hasNext(); // test 2, iter到2后面
remove(); 删掉2,没法删掉1
这个题估计不考虑remove, 或者根据implementation来写具体的remove
class PositiveIterator{
IntergerIterator iter;
int nextPositive;
Integer P;
NoSuchElementException e = new NoSuchElementException();
public PositiveIterator(IntegerIterator iter){
this.iter=iter;
nextPositive = -1;
}
public int next(){
if(hasNext()) {
int ret = nextPositive;
nextPosi... 阅读全帖
s******7
发帖数: 1758
28
来自主题: JobHunting版 - 刷了半天题
好像不难,我写个试试,大家给看看
IntergerIterator iter;
NoSuchElementException e = new NoSuchElementException();
public int next(){
if(!iter.hasNext()) throw e;
int n = iter.next();
return n>0?n:next();
}
public boolean hasNext(){
if(!iter.hasNext()) return false;
int n = iter.next();
return n>0?true:hasNext();
}
public void remove(){
iter.remove();
}
想简单了,hasNext移动iter,见笑了
R*********d
发帖数: 34
29
来自主题: JobHunting版 - 刷了半天题
方便起见,就用了ArrayList,不过意思是一样的。
public class PositiveIntegerIterator
{
private int prev = -1;
private Iterator it;
public PositiveIntegerIterator(Iterator it){
this.it = it;
}
public boolean hasNext(){
if(prev > 0){
return true;
}
while(it.hasNext()){
prev = it.next();
if(prev > 0){
return true;
}
}
return false;
}
public Integer next(){
... 阅读全帖
s******7
发帖数: 1758
30
来自主题: JobHunting版 - 刷了半天题
嗯,看到了,想简单了
单独一个变量记录下个一个正数, 不过remove有问题, 因为hasNext过后,指针到下一
个正数, 就没办法删掉上一个next过的正数
比如 1,-1,2
next(); // get 1,iter到1后面
hasNext(); // test 2, iter到2后面
remove(); 删掉2,没法删掉1
这个题估计不考虑remove, 或者根据implementation来写具体的remove
class PositiveIterator{
IntergerIterator iter;
int nextPositive;
Integer P;
NoSuchElementException e = new NoSuchElementException();
public PositiveIterator(IntegerIterator iter){
this.iter=iter;
nextPositive = -1;
}
public int next(){
if(hasNext()) {
int ret = nextPositive;
nextPosi... 阅读全帖
d******o
发帖数: 13
31
来自主题: JobHunting版 - 求指点一道G家Iterator的题目
Stack + 递归
之前面Twitter也被问到过,但是迷迷糊糊没想清楚。。。
需要一个 helper class: Pair(NestedList list, int position) 定义当前所在的位
置.
Iterator 需要实现 hasNext() 和 next()
hasNext 检查还有没有值,检查栈顶的Pair,如果当前所指的是Node,直接输出 true
即可。如果是List,就new 一个 Pair(curList, 0), push到stack上。然后递归的
call hasNext 进行检查。如果 栈顶的position 已经超出 当前list 的范围,说明已
经遍历完当前list, pop 掉当前元素,然后对新的栈顶元素(如果有的话)的
position + 1, 之后同样 递归的 call hasNext 继续进行检查。
至于next,上面的 hasNext 保证了 如果还有值,会让栈顶的Pair指到一个Node,所以
直接输出即可,并将 position + 1.
d******o
发帖数: 13
32
来自主题: JobHunting版 - 求指点一道G家Iterator的题目
Stack + 递归
之前面Twitter也被问到过,但是迷迷糊糊没想清楚。。。
需要一个 helper class: Pair(NestedList list, int position) 定义当前所在的位
置.
Iterator 需要实现 hasNext() 和 next()
hasNext 检查还有没有值,检查栈顶的Pair,如果当前所指的是Node,直接输出 true
即可。如果是List,就new 一个 Pair(curList, 0), push到stack上。然后递归的
call hasNext 进行检查。如果 栈顶的position 已经超出 当前list 的范围,说明已
经遍历完当前list, pop 掉当前元素,然后对新的栈顶元素(如果有的话)的
position + 1, 之后同样 递归的 call hasNext 继续进行检查。
至于next,上面的 hasNext 保证了 如果还有值,会让栈顶的Pair指到一个Node,所以
直接输出即可,并将 position + 1.
l*********d
发帖数: 78
33
来自主题: JobHunting版 - Google onsite归来
参照 peking2 的写了一个:
public Iterator conditionIterator(final Iterator input,
final Predicate pred) {
return new Iterator() {
T next = null;
public T next() {
if (!hasNext()) throw new NoSuchElementException("no more element");
T ret = next;
next = null;
return ret;
}
public boolean hasNext() {
if (next != null) return true;
else if (!input.hasNext()) return false;
... 阅读全帖
c*****u
发帖数: 562
34
来自主题: JobHunting版 - 刚刚结束的linkedIn电面
第一题:java.lang.ArrayIndexOutOfBoundsException: -1
T t=flatC.get(currIndex);
用的是楼主提供的testcase
https://dl.dropbox.com/u/7472691/mitbbs/DeepIteratorImplTester.java
也贴个我的第一题吧:
public class DeepIteratorImpl implements Iterator {
private Map> deepIterators;
private Map singleElements;
private int index;
private int maxIndex;
// Constructor
public DeepIteratorImpl(Collection> c) {
if (c... 阅读全帖
m*****n
发帖数: 204
35
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
攒了个段子请大牛点评一下:
// Not thread-safe
// Talk about validation requirement: none vs in next() vs in constructor
private static class DeepIterator implements Iterator {
private final Iterator myIterator;

private final Class eleType;

private final Iterator empty = new ArrayList().iterator();

private Iterator head = empty;

DeepIterator(List list, Class eleType) {
this.myIterator = list.iterator();
this.eleType = e... 阅读全帖
m*****n
发帖数: 204
36
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
攒了个段子请大牛点评一下:
// Not thread-safe
// Talk about validation requirement: none vs in next() vs in constructor
private static class DeepIterator implements Iterator {
private final Iterator myIterator;

private final Class eleType;

private final Iterator empty = new ArrayList().iterator();

private Iterator head = empty;

DeepIterator(List list, Class eleType) {
this.myIterator = list.iterator();
this.eleType = e... 阅读全帖
h*******o
发帖数: 8
37
来自主题: JobHunting版 - 小弟求问LinkedIn那道Deep Iterator的题
这题规定必须用stack做么?保存一个sub deepiterator递归也行吧。
小众的ObjC代码:
@interface DeepIterator ()
@property (nonatomic, strong) NSArray *array;
@property (nonatomic, strong) DeepIterator *subInterator;
@property (nonatomic, assign) NSInteger index;
@end
@implementation DeepIterator
- (instancetype)initWithArray:(NSArray *)array
{
self = [super init];
if (self) {
self.array = array;
}
return self;
}
- (BOOL)hasNext
{
if (self.index >= self.array.count) {
return NO;
}
if ... 阅读全帖
t**c
发帖数: 480
38
来自主题: JobHunting版 - 问个算法题
//lst1 has N items, and lst2 has M items
public static void Print( List lst1, List lst2)
{
Iterator itr1 = lst1.iterator();
Iterator itr2 = lst2.iterator();
while (itr1.hasNext() || itr2.hasNext())
{
int x=0, y=0;
if (itr1.hasNext())
{
x = itr1.next();
System.out.println(x);
}
if (itr2.hasNext())
{
y = itr2.next();
System.out.println... 阅读全帖
m*****k
发帖数: 731
39
来自主题: JobHunting版 - fb + google 电面面经
constructor:
List its = new ArrayList<>();
while(iteratorOfIterator.hasNext()){
its.add(iteratorOfIterator.next());
}
hasNext():
while (its.size()>0 && !its.get(0).hasNext() ){
its.remove(0);
}
return its.size()>0;
next():
if(hasNext()){
its.get(0).next();
}
else{
//error out or return null
}
f**********t
发帖数: 1001
40
来自主题: JobHunting版 - 实现vector的iterator,template问题
实现了vector的iterator,包括Next(), hasNext(), peek()等功能。
但是一旦用template写又卡住了。
这里vector::iterator it; 会出错:missing ";" before identifier "it"
感觉是个编译问题,但不知怎么fix. 求指教。多谢!=)
template class VectorIterator {
vector vec_;
vector::iterator it;
public:
VectorIterator(vector &vec) {
vec_ = vec;
it = vec_.begin();
}
bool hasNext() {
return it != vec_.end();
}
T next() {
if (!hasNext()) {
throw exception("End of vector");
... 阅读全帖
n**s
发帖数: 2230
41
来自主题: JobHunting版 - 刷了半天题
一个简单的做法。
class PositiveIterator {
public:
PositiveIterator (IntegerIterator & it) : m_it(it), m_cur_val(0) {}
bool hasNext() {
if (m_cur_val) {
return true;
}

while (m_it.hasNext()) {
int tmp = m_it.next()
if (tmp>0) {
m_cur_val = tmp;
return true;
}
}
return false;
}
int next() {
if(m_cur_val || hasNext()) {
int tmp = m_cur_val;
m_cur_val=0;
return tmp;
}
return 0;
}
void remove... 阅读全帖
m*******5
发帖数: 15
42
来自主题: JobHunting版 - 刷了半天题
Java:
public class PositiveIterator {
public static void main(String[] args) {
List list = new ArrayList();
for(int i = 0; i < 10; i++) {
list.add(i);
list.add(-i);
}
System.out.println(list.toString());
PositiveIterator posIter = new PositiveIterator(list.iterator());
for(int i = 0; i < 100; i++)
System.out.println(posIter.hasNext());

while(posIter.hasNext()) {
S... 阅读全帖
n**s
发帖数: 2230
43
来自主题: JobHunting版 - 刷了半天题
一个简单的做法。
class PositiveIterator {
public:
PositiveIterator (IntegerIterator & it) : m_it(it), m_cur_val(0) {}
bool hasNext() {
if (m_cur_val) {
return true;
}

while (m_it.hasNext()) {
int tmp = m_it.next()
if (tmp>0) {
m_cur_val = tmp;
return true;
}
}
return false;
}
int next() {
if(m_cur_val || hasNext()) {
int tmp = m_cur_val;
m_cur_val=0;
return tmp;
}
return 0;
}
void remove... 阅读全帖
m*******5
发帖数: 15
44
来自主题: JobHunting版 - 刷了半天题
Java:
public class PositiveIterator {
public static void main(String[] args) {
List list = new ArrayList();
for(int i = 0; i < 10; i++) {
list.add(i);
list.add(-i);
}
System.out.println(list.toString());
PositiveIterator posIter = new PositiveIterator(list.iterator());
for(int i = 0; i < 100; i++)
System.out.println(posIter.hasNext());

while(posIter.hasNext()) {
S... 阅读全帖
y*****e
发帖数: 712
45
public static Iterable mergeKSortedIterators(List
> Iters){

Queue minHeap = new PriorityQueue();
List result = new ArrayList();
for(Iterator iter : Iters){
if(iter.hasNext()){
minHeap.add(new newIter(iter.next(), iter));
}
}

while(!minHeap.isEmpty()){
newIter newiter = minHeap.poll();
result.add(newiter.get... 阅读全帖
T******7
发帖数: 1419
46
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
public class ManhattanDistansIterator {

PriorityQueue pList = null;
int len;
int index;

public ManhattanDistansIterator(List points) {
len = points.size();

pList = new PriorityQueue<>(len, new Comparator() {
public int compare(Point p1, Point p2){
... 阅读全帖
N***m
发帖数: 4460
47
how about in java? tested a few cases and it seems to work.
Map map = new HashMap();
map.put("dog",1);
map.put("sheep",5);
map.put("cat",3);

String s = "dog-cat+dog-sheep";
List list = new LinkedList();
StringTokenizer st = new StringTokenizer(s, "+-");
while(st.hasMoreTokens()) {
St... 阅读全帖
p*****2
发帖数: 21240
48
来自主题: Programming版 - 请教一个编程问题
看看这个可不可以
class MapIterator{
Iterator it=null;
Iterator sub=null;
Object next=null;

public MapIterator(Map m){
it=m.values().iterator();
}

boolean processSub(){
while(sub!=null && sub.hasNext()){
next=sub.next();
if(next!=null) return true;
}
return false;
}

boolean hasNext(){
if(next!=n... 阅读全帖
D********g
发帖数: 650
49
来自主题: JobHunting版 - [google面试]iterator访问
我的java 版本,欢迎指正
public static class Flattener {
final List> _vv;
int _curList = 0;
int _curOffset = 0;
public Flattener(final List> vv) {
if (vv == null) {
throw new IllegalArgumentException();
}
_vv = new ArrayList>();
for (int i = 0; i < vv.size(); ++i) {
if (vv.get(i) == null || vv.get(i).size() == 0) {
continue;
... 阅读全帖
p*****2
发帖数: 21240
50
来自主题: JobHunting版 - [google面试]iterator访问
大概这个样子吧。
class flat implements Iterator
{
Iterator> it1=null;
Iterator it2=null;

void Getit2()
{
it2=null;
if(it1!=null)
{
while(it1.hasNext())
{
Vector v=it1.next();
if(v!=null && v.size()!=0)
{
it2=v.iterator();
return;
};
}
}
}
public flat(Vector> a)
{
if(a!=null)
{
it1=a.iterator();
Getit2();
}
... 阅读全帖
1 2 3 4 5 下页 末页 (共5页)