avatar
叫兽需要被管# Biology - 生物学
z*c
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,是不是没戏了?
avatar
e*s
2
历史事实证名 只有党才能管理好他们
avatar
a*o
3
intern?

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

avatar
z*c
4
full time
avatar
a*o
5
应该有戏吧,linkedlist是啥题目?

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

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

avatar
z*c
7
好吧,题目真心不难
两道要码的
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 的大作中提到】
: 操,最烦这种,说了半天通篇废话。
avatar
h*g
8
我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 ()

avatar
l*8
9
第二题我觉得就是在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 ()

avatar
z*c
10
我一拍脑袋这不可以用queue么!
写完了才发现可以只用一个变量。。。

【在 l*********8 的大作中提到】
: 第二题我觉得就是在wrapper里用个变量把下一个T value存起来,是吗?
avatar
z*c
11
哦第一个面馆还问了个问题,我不知道怎么回答
他首先问什么叫内存泄露,我说比如C里你malloc不释放就泄露了,然后他问如果知道
一端程序泄露了,怎么查出哪里泄了。我想了半天,只想到去查找每个malloc对应的
free,面馆也没肯定否定
avatar
m*e
12
userspace用valgrind一查就行。
kernelspace不好办。

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

avatar
h*l
13
能解释一下吗?
还没看明白题目
多谢

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

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

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

avatar
h*l
15
明白了,
非常感谢

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

avatar
i*e
16
可以更改 hasNext() 和 next() 函数吗?

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

avatar
h*l
17
必须改阿
新的next()直接返回tmp的值,然后tmp改为old next()的返回值
hasnext()好像不用改,或者改为 !tmp

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

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

avatar
h*0
20
bless
avatar
p*2
21
我感觉楼主是个大牛。应该没问题。
avatar
p*2
22

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

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

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

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

avatar
l*i
25
For C you can probably provide a wrapper for malloc.

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

avatar
l*i
26
This seems like implementing i++

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

avatar
t*e
27
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.
avatar
s*y
28
谁能把这个peek的贴个code啊,还是没搞明白。谢谢

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

avatar
p*2
29
近来膜拜一下zhangchi大神。
avatar
g*s
30
这个行不?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<cout<cout<cout<cout<cout<std::cin.get();
return 0;
}
avatar
l*5
31
所以需要两个iterator?一个比另一个快一步 然后取到下一个的值存到temp里然后
peek返回这个temp 这样吗?

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

avatar
C*U
32
。。。开始来jobhunting了。。。。

【在 n****e 的大作中提到】
: 操,最烦这种,说了半天通篇废话。
avatar
z*3
33
那就是预先取一个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 ()
: }

avatar
z*3
34
这难道不是wrapper这个pattern的定义么?

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

avatar
u*g
35
你这样构造的时候先把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;

avatar
f*m
36
谁能写个终结版?
avatar
b*y
37
iterator这题跟我遇到的一样哇,我找找我的code
avatar
b*y
38
贴个我的代码,请大牛们帮忙纠错
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;
}
}
avatar
y*n
39
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{

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。