由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 面完G的电面了,忐忑
相关主题
问一道C++ template的面试题请问leetcode的Binary Search Tree Iterator
刷了半天题求教:这个程序为什么不能编译?
iterator 实现 如何 peek(),pop()?报个G的电面
请教 Iterator 一题fb + google 电面面经
Two problems from Google问个题
新鲜G面经请教为什么这段程序运行不work?(doubly linked list) (转载
问个简单coding问题Scala怎么通过index访问set或者array
实现vector的iterator,template问题LC的BST iterator到底要考察什么?
相关话题的讨论汇总
话题: hasnext话题: iterator话题: wrapper话题: peek话题: next
进入JobHunting版参与讨论
1 (共1页)
z********c
发帖数: 72
1
连续两个真的挺虚的。
第一个一上来给出一堆名词,要我给definition,跪了。。。乱说一气
然后给了个linkedlist的题,看过careercup就很轻松
一面感觉还行
第二个是悲剧
一个简单的代码题,我一开始给了solution,可以work,但根本没必要。可是我刚一说
我想法,面试官就很兴奋的说“Great,How to implement this idea?!”我还以为自
己这方法就是他想要的。。 我就屁颠屁颠开始写程序了。。。。图森破拿衣服
写完了,测试样例写完了。才发现傻逼了,用了根本不该用的高级数据结构。当时直接
在心里给自己两个耳刮子。赶紧跟面试官说,老大说好,然后咋改。然后blablabla改
。。。然后因为这个题时间也刚好完了。。
唯一一个亮点可能是他看我写完新方法以后,看完代码问用新的做法更快,但有没有可
能有老方法不出bug但新方法出bug的地方。我看了一分钟,找到了他可能说出bug的地
方,然后说Yeah this is what i'm talking about
昨天问一个哥们同样面的G,题比我难,答的比我好,被拒了。我这个第二个面馆我觉
得会给positive,是不是没戏了?
a***o
发帖数: 1182
2
intern?

【在 z********c 的大作中提到】
: 连续两个真的挺虚的。
: 第一个一上来给出一堆名词,要我给definition,跪了。。。乱说一气
: 然后给了个linkedlist的题,看过careercup就很轻松
: 一面感觉还行
: 第二个是悲剧
: 一个简单的代码题,我一开始给了solution,可以work,但根本没必要。可是我刚一说
: 我想法,面试官就很兴奋的说“Great,How to implement this idea?!”我还以为自
: 己这方法就是他想要的。。 我就屁颠屁颠开始写程序了。。。。图森破拿衣服
: 写完了,测试样例写完了。才发现傻逼了,用了根本不该用的高级数据结构。当时直接
: 在心里给自己两个耳刮子。赶紧跟面试官说,老大说好,然后咋改。然后blablabla改

z********c
发帖数: 72
3
full time
a***o
发帖数: 1182
4
应该有戏吧,linkedlist是啥题目?

【在 z********c 的大作中提到】
: full time
n****e
发帖数: 2401
5
操,最烦这种,说了半天通篇废话。

【在 z********c 的大作中提到】
: 连续两个真的挺虚的。
: 第一个一上来给出一堆名词,要我给definition,跪了。。。乱说一气
: 然后给了个linkedlist的题,看过careercup就很轻松
: 一面感觉还行
: 第二个是悲剧
: 一个简单的代码题,我一开始给了solution,可以work,但根本没必要。可是我刚一说
: 我想法,面试官就很兴奋的说“Great,How to implement this idea?!”我还以为自
: 己这方法就是他想要的。。 我就屁颠屁颠开始写程序了。。。。图森破拿衣服
: 写完了,测试样例写完了。才发现傻逼了,用了根本不该用的高级数据结构。当时直接
: 在心里给自己两个耳刮子。赶紧跟面试官说,老大说好,然后咋改。然后blablabla改

z********c
发帖数: 72
6
好吧,题目真心不难
两道要码的
1. Rotate r node to right: A->B->C->D->E->NULL, r = 2
D->E->A->B->C->Null
2. iterator has only bool hasNext () and T next() method, write a wrapper
for iterator, to support peek ()

【在 n****e 的大作中提到】
: 操,最烦这种,说了半天通篇废话。
h*****g
发帖数: 312
7
我x.
第二题跟我去年面google 的题一样,当时就悲剧了。。
求解答~~~

【在 z********c 的大作中提到】
: 好吧,题目真心不难
: 两道要码的
: 1. Rotate r node to right: A->B->C->D->E->NULL, r = 2
: D->E->A->B->C->Null
: 2. iterator has only bool hasNext () and T next() method, write a wrapper
: for iterator, to support peek ()

l*********8
发帖数: 4642
8
第二题我觉得就是在wrapper里用个变量把下一个T value存起来,是吗?

【在 z********c 的大作中提到】
: 好吧,题目真心不难
: 两道要码的
: 1. Rotate r node to right: A->B->C->D->E->NULL, r = 2
: D->E->A->B->C->Null
: 2. iterator has only bool hasNext () and T next() method, write a wrapper
: for iterator, to support peek ()

z********c
发帖数: 72
9
我一拍脑袋这不可以用queue么!
写完了才发现可以只用一个变量。。。

【在 l*********8 的大作中提到】
: 第二题我觉得就是在wrapper里用个变量把下一个T value存起来,是吗?
z********c
发帖数: 72
10
哦第一个面馆还问了个问题,我不知道怎么回答
他首先问什么叫内存泄露,我说比如C里你malloc不释放就泄露了,然后他问如果知道
一端程序泄露了,怎么查出哪里泄了。我想了半天,只想到去查找每个malloc对应的
free,面馆也没肯定否定
相关主题
新鲜G面经请问leetcode的Binary Search Tree Iterator
问个简单coding问题求教:这个程序为什么不能编译?
实现vector的iterator,template问题报个G的电面
进入JobHunting版参与讨论
m*********e
发帖数: 55
11
userspace用valgrind一查就行。
kernelspace不好办。

【在 z********c 的大作中提到】
: 哦第一个面馆还问了个问题,我不知道怎么回答
: 他首先问什么叫内存泄露,我说比如C里你malloc不释放就泄露了,然后他问如果知道
: 一端程序泄露了,怎么查出哪里泄了。我想了半天,只想到去查找每个malloc对应的
: free,面馆也没肯定否定

h**********l
发帖数: 6342
12
能解释一下吗?
还没看明白题目
多谢

【在 z********c 的大作中提到】
: 我一拍脑袋这不可以用queue么!
: 写完了才发现可以只用一个变量。。。

z********c
发帖数: 72
13
现在有一个容器的iterator,支持
bool hasNext () 是否还有元素
T next () 取出下个元素,并迭代器后移
现在要你写一个wrapper类
class wrapper {
wrapper (iterator it);
bool hasNext ()
T next ()
T peek ()
}
以一个iterator为构造函数,在支持hasNext和next的同时,添加peek (),即查看下一
个元素的值,但迭代器不后移

【在 h**********l 的大作中提到】
: 能解释一下吗?
: 还没看明白题目
: 多谢

h**********l
发帖数: 6342
14
明白了,
非常感谢

【在 z********c 的大作中提到】
: 现在有一个容器的iterator,支持
: bool hasNext () 是否还有元素
: T next () 取出下个元素,并迭代器后移
: 现在要你写一个wrapper类
: class wrapper {
: wrapper (iterator it);
: bool hasNext ()
: T next ()
: T peek ()
: }

i**********e
发帖数: 1145
15
可以更改 hasNext() 和 next() 函数吗?

【在 z********c 的大作中提到】
: 现在有一个容器的iterator,支持
: bool hasNext () 是否还有元素
: T next () 取出下个元素,并迭代器后移
: 现在要你写一个wrapper类
: class wrapper {
: wrapper (iterator it);
: bool hasNext ()
: T next ()
: T peek ()
: }

h**********l
发帖数: 6342
16
必须改阿
新的next()直接返回tmp的值,然后tmp改为old next()的返回值
hasnext()好像不用改,或者改为 !tmp

【在 i**********e 的大作中提到】
: 可以更改 hasNext() 和 next() 函数吗?
i**********e
发帖数: 1145
17
恩,还以为有什么神秘trick可以不用改。
改的话就利用一个temp储存下一个,hasNext 和 next 做一下额外判断就行。
h**********l
发帖数: 6342
18
hasnext()不知道怎么实现的,
但是不一定是必须改的
我觉得

【在 i**********e 的大作中提到】
: 恩,还以为有什么神秘trick可以不用改。
: 改的话就利用一个temp储存下一个,hasNext 和 next 做一下额外判断就行。

h******0
发帖数: 427
19
bless
p*****2
发帖数: 21240
20
我感觉楼主是个大牛。应该没问题。
相关主题
fb + google 电面面经Scala怎么通过index访问set或者array
问个题LC的BST iterator到底要考察什么?
请教为什么这段程序运行不work?(doubly linked list) (转载攒个人品发碗F家面筋
进入JobHunting版参与讨论
p*****2
发帖数: 21240
21

我的经验是除了你这个方法就是用工具了。

【在 z********c 的大作中提到】
: 哦第一个面馆还问了个问题,我不知道怎么回答
: 他首先问什么叫内存泄露,我说比如C里你malloc不释放就泄露了,然后他问如果知道
: 一端程序泄露了,怎么查出哪里泄了。我想了半天,只想到去查找每个malloc对应的
: free,面馆也没肯定否定

i**********e
发帖数: 1145
22
C++ 里可以overload operator new 和 delete,每次new一次加一,delete一次减一。
这样program结束之前确认counter是否为0。如果不是的话,就内存外泄了。
t********6
发帖数: 348
23
G的full time电面都是两个连续的么?为啥我听说有的就一个人?

【在 z********c 的大作中提到】
: 连续两个真的挺虚的。
: 第一个一上来给出一堆名词,要我给definition,跪了。。。乱说一气
: 然后给了个linkedlist的题,看过careercup就很轻松
: 一面感觉还行
: 第二个是悲剧
: 一个简单的代码题,我一开始给了solution,可以work,但根本没必要。可是我刚一说
: 我想法,面试官就很兴奋的说“Great,How to implement this idea?!”我还以为自
: 己这方法就是他想要的。。 我就屁颠屁颠开始写程序了。。。。图森破拿衣服
: 写完了,测试样例写完了。才发现傻逼了,用了根本不该用的高级数据结构。当时直接
: 在心里给自己两个耳刮子。赶紧跟面试官说,老大说好,然后咋改。然后blablabla改

l***i
发帖数: 1309
24
For C you can probably provide a wrapper for malloc.

【在 i**********e 的大作中提到】
: C++ 里可以overload operator new 和 delete,每次new一次加一,delete一次减一。
: 这样program结束之前确认counter是否为0。如果不是的话,就内存外泄了。

l***i
发帖数: 1309
25
This seems like implementing i++

【在 z********c 的大作中提到】
: 现在有一个容器的iterator,支持
: bool hasNext () 是否还有元素
: T next () 取出下个元素,并迭代器后移
: 现在要你写一个wrapper类
: class wrapper {
: wrapper (iterator it);
: bool hasNext ()
: T next ()
: T peek ()
: }

t********e
发帖数: 143
26
I deleted my original post. It is wrong. :)
I think we need to know how iterator is defined, i.e what interface function
it has.. A lot of iterators you can just deference it to get current value,
i.e. peek.
s********y
发帖数: 28
27
谁能把这个peek的贴个code啊,还是没搞明白。谢谢

【在 z********c 的大作中提到】
: 现在有一个容器的iterator,支持
: bool hasNext () 是否还有元素
: T next () 取出下个元素,并迭代器后移
: 现在要你写一个wrapper类
: class wrapper {
: wrapper (iterator it);
: bool hasNext ()
: T next ()
: T peek ()
: }

p*****2
发帖数: 21240
28
近来膜拜一下zhangchi大神。
g*******s
发帖数: 2963
29
这个行不?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();
};
T next(){return *++_it;};
T peek(){
_tempIt = _it;
return *++_tempIt;
};
T operator*() {return *_it;};
private:
vector _vec;
typename vector::iterator _it;
typename vector::iterator _tempIt;
};
int main()
{
int a[]={1,2,3,4,5};
vector v(a, a+5);
vector::iterator it;
Wrapper wit(v, it);
cout<<"current: "<<*wit< cout<<"hasNext: "< cout<<"go next: "< cout<<"current: "<<*wit< cout<<"peek next: "< cout<<"current: "<<*wit< std::cin.get();
return 0;
}
l********5
发帖数: 230
30
所以需要两个iterator?一个比另一个快一步 然后取到下一个的值存到temp里然后
peek返回这个temp 这样吗?

【在 i**********e 的大作中提到】
: 恩,还以为有什么神秘trick可以不用改。
: 改的话就利用一个temp储存下一个,hasNext 和 next 做一下额外判断就行。

相关主题
C++问题刷了半天题
zynga, linkedin, epic, two sigma, facebook面经iterator 实现 如何 peek(),pop()?
问一道C++ template的面试题请教 Iterator 一题
进入JobHunting版参与讨论
C***U
发帖数: 2406
31
。。。开始来jobhunting了。。。。

【在 n****e 的大作中提到】
: 操,最烦这种,说了半天通篇废话。
z*******3
发帖数: 13709
32
那就是预先取一个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();
if(it.hasNext()){
tmp = it.next();
}
return t;
}else throw new Exception("null pointer exception");
}
}

【在 z********c 的大作中提到】
: 现在有一个容器的iterator,支持
: bool hasNext () 是否还有元素
: T next () 取出下个元素,并迭代器后移
: 现在要你写一个wrapper类
: class wrapper {
: wrapper (iterator it);
: bool hasNext ()
: T next ()
: T peek ()
: }

z*******3
发帖数: 13709
33
这难道不是wrapper这个pattern的定义么?

【在 l********5 的大作中提到】
: 所以需要两个iterator?一个比另一个快一步 然后取到下一个的值存到temp里然后
: peek返回这个temp 这样吗?

u******g
发帖数: 89
34
你这样构造的时候先把hasNext存起来回头人家那边的next万一被删了你也不知道啊。。

【在 z*******3 的大作中提到】
: 那就是预先取一个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;

f*********m
发帖数: 726
35
谁能写个终结版?
b***y
发帖数: 76
36
iterator这题跟我遇到的一样哇,我找找我的code
b***y
发帖数: 76
37
贴个我的代码,请大牛们帮忙纠错
PeekIterator implement Iterator {
Iterator iter;
Object curr;
PeekIter(Iterator iter){
iter = iter;
if (iter.hasNext()) curr = iter.next();
else curr = null;
}
Object next() throws Exception{
Object output = peek();
curr = iter.next();
return output;
}
boolean hasNext() {
return curr == null;
}
Object peek() {
return curr;
}
}
y****n
发帖数: 743
38
LS代码中的HasNext()被转义了。
我认为不可以通过curr==null当作HasNext()的判断标准。
如果iterator中的某个值就是null呢?
如果是我,我会同时cache那个值和HasNext()的结果。

【在 b***y 的大作中提到】
: 贴个我的代码,请大牛们帮忙纠错
: PeekIterator implement Iterator {
: Iterator iter;
: Object curr;
: PeekIter(Iterator iter){
: iter = iter;
: if (iter.hasNext()) curr = iter.next();
: else curr = null;
: }
: Object next() throws Exception{

1 (共1页)
进入JobHunting版参与讨论
相关主题
LC的BST iterator到底要考察什么?Two problems from Google
攒个人品发碗F家面筋新鲜G面经
C++问题问个简单coding问题
zynga, linkedin, epic, two sigma, facebook面经实现vector的iterator,template问题
问一道C++ template的面试题请问leetcode的Binary Search Tree Iterator
刷了半天题求教:这个程序为什么不能编译?
iterator 实现 如何 peek(),pop()?报个G的电面
请教 Iterator 一题fb + google 电面面经
相关话题的讨论汇总
话题: hasnext话题: iterator话题: wrapper话题: peek话题: next