|
|
z*s 发帖数: 209 | 3 上个月中旬面的试,在Mountain View。由于之前在学校进行了校园面试(2*45分钟)
,所以这一次on site只有三个人,每个人还是45分钟;外加一个人带着吃午饭,没有
反馈。
一、二叉树中给定一个节点,查找按照中序遍历顺序它的后继节点,要求写代码,并给
出复杂度;二叉树中查找中序遍历顺序中的第k个节点,如果每个节点都添加了子树中
节点个数这个变量,如何在插入、删除和旋转时更新这个值(旋转是为了保证logn的复
杂度而要使二叉树保持平衡)。
二、C++概念题,包括虚函数、多继承、私有的构造、析构函数、重载的new运算符等;
以前的project问题;开放性问题,跟网络有关,包括了分组交换、拥塞控制、流控制
、多播等等知识点;最后问了一个编程题,跟quad tree有关,不太常见,但不是很难
,我觉得考查了函数的递归。
三、一道编程题,大意是给定一个类read1,它有一个函数read4096,每次调用它可以
从文件中读取4K个字节,同时移动文件指针4K个位置(若文件中剩余数据不足4K,则读
取剩下的所有数据),这个函数返回实际读取的字节数,int型;要求实现另一个类
read2... 阅读全帖 |
|
u******e 发帖数: 758 | 4 刚刚和amazon的recruiter通完电话,确认拿到offer,他正在发email
95k+15k
大概打算从了,希望板上有讨价还价经验的朋友可以给点经验争取最大利益^_^
另外,因为身份问题,我十月前要先去amazon北京,类似这期间的pay之类的问题有谁有
经验的?
鉴于NDA和某w同学,面经里问题我尽量只涉及方向不说具体内容。
先说下我的基本情况吧,应该有点励志效果:
学历只有国内大学cs的本科,还因为身体原因延毕了半年-_-之后在杭州找的一个小公司
的SDE工作了1年半,拿L1来了公司在美国的总部作PM。公司规模很小,不到20人,很多
东西是一团乱麻,工作不到2年后于去年12月跟老板吵翻,离职开始找工作。
L1签证到今年2月就过期了,所以算是黑着身份找的,想想也挺不容易的。
简历自己写的,然后托朋友改了一下(还不是cs的人,只是帮我改了些语法和排版)。
一开始是在monster上投的,发现这样投实在是石沉大海。之后开始直接上各公司主页上
的career里投,疯狂的时候只看position,连requirements都不仔细看就扔出去了,而
且一般都是一家公司投7,8个职位的... 阅读全帖 |
|
g*********s 发帖数: 1782 | 5 发信人: uglyduke (一苇居士), 信区: JobHunting
标 题: 绝对精华,offer+面经
发信站: BBS 未名空间站 (Wed Mar 30 21:34:37 2011, 美东)
Amazon的offer,95k+15k
基本情况:
国内大学cs本科,杭州小公司SDE工作1年半,L1来了公司美国总部作PM。工作不到2年
离职开始找工作。L1签证到今年2月就过期了,算是黑着身份找的,挺不容易。
google电面。大我10多届的学长打来,问题范围比较广,但内容基础,考察面:
1 基本数据结构,如array和list
2 十六进制的基本题
3 多线程,线程与进程的区别,windows下的多线程编程基础,livelock技术,读写者
4 给了几个数比大小
5 c++的基本知识,多态,vptable,引用,常,构造析构,static的用法等等小东西
6 浏览器里输入URL后发生什么
on site在santa monica
1 behavior+60秒点击最多的问题,coding。
2 coding,实现一个DFS,不过缺一些条件。
3 大规模问题,有点特殊性的字串排序... 阅读全帖 |
|
o***i 发帖数: 603 | 6 三轮6人
刚刚发完thank you letter写到手软。。。
无名公司,去了才知道这个position是java的,但是问了很多C++问题
记得的几个:
1. c++和java的区别,让你选,你选哪个?
2. 多线程实现
3. singleton实现,举例design pattern
4. static在java里的作用
5. C++析构函数
6. lifecycle
7. tcp vs udp
8. high level 解释ajax
9. C++虚函数和纯虚函数区别
10. 如何强制子类实现父类的一个方法
中间两个阿三,一个很nice另一个manager很tough
表现总体说来,一般,sigh, 求bless~ |
|
R****i 发帖数: 104 | 7 尽量处理错误信息。如果不行,写log file。析构函数中抛出异常会把C++程序挂掉。 |
|
O******i 发帖数: 269 | 8 最近面了一家IT大公司被拒,一共经历了N轮技术面试。自己感觉还不算太坏,但也有
三轮发挥不太完美,所以心里很没底。
结果还是被拒了。
下面是这三轮的详细经历,请大家探讨一下大公司招人的标准。
第i轮是找二叉树从根开始的所有路径,使得该路径上所有节点的值之和等于一个给定
的数。我犯了一个战略错误,因为我在准备过程中看过CarrerCup的更通用的解法,不
要求从根开始,也不要求到叶子结束,于是我直接用了那个思路,在白板上写下了类似
下面的代码
void FindPath(Node* root, int sum, int path[], int level)
{
if (root == NULL)
return;
int s = 0;
for (int i = 0; i < level; i++)
s += path[i];
int value = root->data;
if (s + value == sum)
PrintPath(path, level, value);
path[leve... 阅读全帖 |
|
i**d 发帖数: 357 | 9 你deleteMin返回引用,这是个很低级的错误。会让面试官觉得你C++的基本概念都没搞
清楚。
这个地方肯定让你失分不少...
他又问DeleteMin怎么写,我说T DeleteMin()或者T& DeleteMin(), 前者返回值,要调
用拷贝构造函数,因此慢。后者返回引用,快。他说后面那个有问题,然后画了个队列
,好像是说元素被删除出队列后,对象被析构了。 |
|
w****x 发帖数: 2483 | 10 template
class SmartPointer
{
public:
SmartPointer(const SmartPointer& p) { addRef(p); }
SmartPointer(T* p) { assign(p); }
~SmartPointer() { decRef(); }
public:
SmartPointer& operator = (const SmartPointer& p)
{
if (this != &p)
{
decRef();
addRef(p);
}
return *this;
}
T* operator ->() const { return m_pVal; }
T& operator *() const { return *m_pVal; }
private:
void decRef()
{
... 阅读全帖 |
|
w****x 发帖数: 2483 | 11
mutex是哪来的?? 什么时候销毁??
如果mutex是多个smart pointer共享的, 那么一个在调用operator =的时候中断, 执行
另一个线程的析构函数,如果这时counter是0, 销毁指针也同时销毁mutex, 那么继续执
行operator =的时候mutex就会是无效的. |
|
w****x 发帖数: 2483 | 12
这2
这个问题怎么解决:
如果mutex是多个smart pointer共享的, 那么一个在调用operator =的时候中断, 执行
另一个线程的析构函数,如果这时counter是0, 销毁指针也同时销毁mutex, 那么继续执
行operator =的时候mutex就会是无效的. |
|
h****n 发帖数: 1093 | 13 第二行,压入AX,CX,DX寄存器,压入返回地址,压入EBP寄存器,更新EBP寄存器为当前的
ESP
第三行应该是啥都没干
第四行的话空类里面自动初始化了默认构造函数,默认析构函数,默认复制构造函数和
默认赋值运算符,然后把该object压入函数栈 |
|
A*****i 发帖数: 3587 | 14 啥意思?不停的new, delete五次然后用一个static放在构造和析构里面让它++? |
|
A*****i 发帖数: 3587 | 15 啥意思?不停的new, delete五次然后用一个static放在构造和析构里面让它++? |
|
|
d**********x 发帖数: 4083 | 17 要看你获得的是什么资源
如果只是内存,好说,程序退出什么都没了
如果有系统资源需要释放的,就要有destructor,而且要想办法在程序退出时析构。 |
|
|
l*********u 发帖数: 19053 | 19 查了下,析构函数原来是destructor,谁翻译的呀? :) |
|
d**********x 发帖数: 4083 | 20 如果你在for loop里面定义,那个vector会不断析构。
谁教你用pop_back的。。= =
用clear,亲 |
|
g********E 发帖数: 178 | 21 Thank you dear!但是什么叫vector会不断析构呢?
我的元素不是一次删完的,不过clear我真是没用过,谢谢提点啊,另外还想问,除了
看着难看,一个一个pop_back会比clear慢吗?I guess just function call overhead? |
|
f********4 发帖数: 988 | 22 如果是简单类型
int char
就不调用析构函数了是嘛。。。
我随便问一下,还是分情况,在编译器优化OR不优化分情况讨论? |
|
d**********x 发帖数: 4083 | 23 我直觉上觉得这种层次的东西编译器很难优化,因为析构的副作用编译器不能预知
是不是这样。。可以g++ -O2 -S看一下汇编,我就不动手了。。 |
|
i******t 发帖数: 22541 | 24 以下几点很迷糊
基类 纯虚函数 需要写个实现吗?
子类 纯虚函数 需要写个实现吗?
基类 虚函数 需要写个body吗?
子类 虚函数 需要写个body吗?
什么情况下 定义完了 必须写个实现
等等此类问题
对了 还有什么 纯虚构造 析构函数之类的
主要是 麻烦解释一下原因 现在看得有点迷糊
thx |
|
c******0 发帖数: 260 | 25 1.bloomberg:
电面一轮就挂了。。。
问了很多C++ 的问题,比如virtual 析构函数。最后竟然问了database的问题。怎么设
计表之类的。基本没懂到底要问什么。。。
2. LinkedIn
一轮电面水果。 判断string是否为合法整数。 还有一个算和的。非常简单。。
二面: pow()实现(leetcode). 最大子序列和(leetcode). 根据第二题,改成最
大乘积(就挂在这题上了。。。)
3.rocket fuel
一轮电面: 好像版上有人面google也是这题: 一个数组A[], 构造数组B[]。 要求B[i
]= A中所以元素的乘积,除了A[i].不让用除法。 扫两遍数组搞定。
然后就是他家的经典题目 millions of ADs.
二轮电面: 跟面试官扯了很久做过的project。就出了一题。找出二叉树中任意两节点
的路径。面试官人很nice。开始思路不是很优化。给了点提示。时间关系没有写完。但
是基本上把最主要的找路径给写完了。
三轮电面: Young table 的问题。leetcode原题。 告诉面试官我知道这题。这种
matrix叫you... 阅读全帖 |
|
a*********2 发帖数: 194 | 26 关注本版有几个月了,一直没怎么发帖,发下今天下午G家onsite的面经。
由于面试的国人大哥说了不要放面经,我也答应了,就不说具体题目了,笼统地说下题
目类别和感受。
上午两个人,一个年轻老美,一个国人大哥。
年轻老美问了个机器人走网格的题,虽然没有做过,不过类似的题目看过一些,所以很
容易就用dp写了一个。之后就是聊些我做的科研,g家做的类似项目,职业规划等等。
国人大哥面我,上来出了个很简单的string题,直接水过,后来出了个比较难的string
题,只让说了想法,没让写程序,估计那复杂度写起来要悲剧。。。感谢国人大哥的放
水!大家要互相帮助阿。可惜不知道这位大哥的email和全名,不然要写个感谢信。
下午三个,两个美国老头,目测都60以上把(看来老美一点年龄歧视都没有阿),一个
40多老美。
第一个美国老头上来把手机拿出来说正在玩一个游戏,问我怎么编程解决,一个类似华
容道的游戏,就说了下bfs的思路,怎么建立图,也没让写程序。后来问了简单的个概
率题,我不知道怎么卡住了,后来经过提示搞出来了。后来又问了个矩阵里面搜索元素
的题,binary search搞定。问复杂度,由于和... 阅读全帖 |
|
a****s 发帖数: 559 | 27 明显的一个错误是 new []/free 配一对。
很奇怪的用法是void _init_data()函数,居然要在函数外赋长度值,然后在函数内用
其做拷贝,很诡异。
一个不严谨memcpy,最好是memcpy(_data, s, sizeof(char)*_len); 默认char为一个
byte不是好习惯。
另一个不严谨的是析构函数里,释放内存后,_data应置NULL,_len应置0.
原网页中,在实现的转移赋值函数里,没有先释放被赋值对象的内存,直接进行指针赋
值,严重的内存泄漏。 |
|
z*******r 发帖数: 12 | 28 用Java吧,C++太难,是个大坑。。。
经常会被问到各种各样关于C++语法和内部实现相关的问题,比如vtable。
Java最多就被问到GC的概念。
从这个角度讲Java更简单。
C++还要释放指针,一不小心就忘了。比如让你实现个链表类,又是复制构造函数,又
是析构函数,老麻烦了。
而且不管是大公司小公司,用Java都是可以的。 |
|
i*****9 发帖数: 3157 | 29 IT这行的面试,从最开始问一个BUS能装下多少个网球,发展到问Linux 系统命令,SQL
语句怎么写,再到问C++虚函数在构造析构过程,&符的6种不同应用场景,再到现在的
无脑刷题。基本上都是一路向着更贴近真实工作场景发展的。
其他的系统设计,问题分析是不是重要,重要!问题是现在没有一个更贴近真实工作场
景,又能在1小时内完成测试,还能用客观标准完成打分的考试模板。这模板还要具备
足够的扩展性和灵活性,以保证不被人在1年内就总结成书人手一本!
:非常同意的楼主的观点。
:但是之前好像看过一个帖子说过 这些大的IT的公司难道不知道刷题考的跟实际工作内 |
|
G****a 发帖数: 10208 | 30 【 以下文字转载自 JobHunting 讨论区 】
发信人: uglyduke (一苇居士), 信区: JobHunting
标 题: 绝对精华,offer+面经
发信站: BBS 未名空间站 (Wed Mar 30 21:34:37 2011, 美东)
刚刚和amazon的recruiter通完电话,确认拿到offer,他正在发email
95k+15k
大概打算从了,希望板上有讨价还价经验的朋友可以给点经验争取最大利益^_^
另外,因为身份问题,我十月前要先去amazon北京,类似这期间的pay之类的问题有谁有
经验的?
鉴于NDA和某w同学,面经里问题我尽量只涉及方向不说具体内容。
先说下我的基本情况吧,应该有点励志效果:
学历只有国内大学cs的本科,还因为身体原因延毕了半年-_-之后在杭州找的一个小公司
的SDE工作了1年半,拿L1来了公司在美国的总部作PM。公司规模很小,不到20人,很多
东西是一团乱麻,工作不到2年后于去年12月跟老板吵翻,离职开始找工作。
L1签证到今年2月就过期了,所以算是黑着身份找的,想想也挺不容易的。
简历自己写的,然后托朋友改了一下(还不是cs... 阅读全帖 |
|
P****D 发帖数: 11146 | 31 http://www.guokr.com/post/81577/
微博上@叫兽易小星 发的……
某天收到一条短信:
“大叔你好!工作忙吗?我是北京XX大学的女学生,农村出身,家里种地的,弟弟还在
上学,下学期的生活费没有着落,能拜托大叔援助一下吗?我品学兼优,五官端正,身
高1米63,一定让你满意!”
我想了想,顺手回了一条:
“请用拉格朗日中值定理证明若x->0+lim f(x) =f(0)= 0,且当x>0时,f`(x)>0,则x>
0时,f(x)>0。”
果然长久没有动静了……
哪知道10分钟之后手机响了,打开一看……
“这个x>0时有f(x)-f(0)=f`(m)m,其中m在(o, X)上,由已知f(O)=o,故有f(x)>0。
我答对了吗?”
-----------------
某天收到一条短信:
“大叔你好!工作忙吗?我是北京XX大学的女学生,学国际政治的,农村出身,家
里种地的,弟弟还在上学,下学期的生活费没有着落,能拜托大叔援助一下吗?我品学
兼优,五官端正,身高1米63,一定让你满意!”
我想了想,顺手回了一条:
“前苏联有哪15个国家... 阅读全帖 |
|
v**o 发帖数: 4 | 32 有道:正确的爱情观是相信世界上并不只是那一个人适合你,而是某一类人;甚而
有好几类人。友情怕也逃不离这个规则。因为世界上千千万万的人,总可以被归入几大
类,我们总可以发现这个或那个的相似。或许,我们也需要这个相似性的指引,让彼此
的情谊更快地进入亲切熟稔的境地。
然而,你不得不承认,有些人,一遇之后,你将再也不遇。他们是独特的,是唯一
的,是稀有的,茕茕孑立于你以往或未来的所有认知之上。
我保留了很多来于她的文字和记忆:书面上的还有脑海中的。犀利的,抑或卑谦的
,只存在于我们俩之间的交流。
犀利一如淋漓酣畅的绞杀,痛快、毫不留情地撕去这个世界、这个世界上的人们、
或者自己的道貌岸然的伪装。而那卑谦——至今读来想来我仍不知她为什么会这么想—
—却深深地打动人心,其中的不安、思虑都是那么令人撼动而又怜惜。她率直、坦白;
而我,我是不会那么清醒而又残忍地将自己放上解剖台,析构自己真正的最深的内心的
。这种直面的勇气,不容置否地将我深深吸引。
我是爱了这种浓烈的:丰沛的情感、分明的爱憎,如夏花般绚烂,又能如秋叶之静
美。有时似飞蛾扑火,直至耗竭而无余;有 |
|
i****k 发帖数: 668 | 33 首先这个程序是你自己瞎写的,编译都过不去的
其次gnu和apple的编译器都给出了正确结果,gnu也根本不知道越界了,不同之处只是
gnu在析构的时候crash了。
我看不出来这俩有啥不同呀 |
|
b***i 发帖数: 3043 | 34 一个控制定自定义的SplashWindow的类,定了一个timer.schedule(task, 0, 100);其
中 task=new TimerTask(){.....run(){splashWindow.repaint();},
关闭窗口的时候timer.cancel();然后通过invokeLater调用splashWindow.dispose();
splashWindow=null等,希望gc来析构变量。
splashWindow是属于 private class SplashWindow extends JFrame{
其中构造函数初始化了 canvas= new BufferedImage(....);
}
还有public void paint(Graphics graphics){
if (fImage != null && running) {
Graphics2D g=canvas.createGraphics();
g.drawImage(base, 0, 0, this);
g.drawImage(... 阅读全帖 |
|
v*s 发帖数: 946 | 35 另外俺还喜欢go中的下面这些东西:
强类型系统。 但是编译器又会自动推断你的类型。例如
xx := abc.efg(123)
可以返回多个数值。 a,b := abc.f(123)
defer. 用它来实现 RAII 比 C++ 利用栈上对象的析构函数的方案让人塌实多了 |
|
r*******q 发帖数: 50 | 36 这里很多人怀疑我的方法是否有效。不是我不想写出来,
而是实在太简单,实在不值得写出来。我个人认为是个人
都应该想得出。这些人无法想出的原因,我个人认为并不
是水平不够,而是已走火入魔。在MFC和类似环境熏陶下
成长的程序员,习惯了用最复杂的方法完成最简单的认为,
而不能理解世界上还有如此简单的方法。
由于我明天要赶飞机,今天没有时间把我的方法写出来。
虽然简单,要说明白还是要不少的文字。我在此只能重申
一下,我的方法只用构造函数和析构函数,唯一原则是
不用"裸"的new/delete/alloc...
过两天如有时间我会把我的方法写出来。我并不企望能改变
那些已经走火入魔的人,只希望尚未走火入魔的人少一些误
入歧途。在这几天也许有人已经找到解决方案,如你能代我
写出来最好了,因为我很快又要回中国,行程很紧。
在此不由得联想到版名,"欲练此功,引刀自宫",对那些
走火入魔的人,可能确实如此//hehe |
|
g*****u 发帖数: 298 | 37 如果把所有node都释放掉,那么别的list对象如果包含这个List的node的话,就会出问
题。如果不释放内存消耗就有可能越来越大。应该怎么做?有必要为每个node增加一个
表示被引用的域吗? |
|
N*********y 发帖数: 105 | 38 wrap node with smart pointer, use reference count or so. |
|
|
|
e*a 发帖数: 32 | 41 是啊,很多东西翻译得挺怪的,名字空间,析构,句柄……太有想象力了 |
|
v*********o 发帖数: 5 | 42 一、受保护的析构函数有什么作用?
二,下面的表达式有什么区别?
static_cast(*this) += 5
static_cast(*this) += 5
谢谢大家 |
|
|
x****t 发帖数: 389 | 44 定义了一个数组,比如a[10],自然是只能用到 a[0] 到 a[9].
打开一个文件ABC,把里面的内容赋给数组 a
程序中出了个判断差错,居然给a[10]赋值。但是程序在这个地方并没有停止,也没有
输出sengmentation fault. 而是继续运算,运算结果还都是正确的。。。最后体现出的
问题是不能关闭文件ABC。。。 一到关闭文件的地方就出错。。。如果把关闭文件那一
行删掉,程序就报析构函数出错。。。
最后才明白原来是a数组溢出了。。。 现在知道结论了,当然就觉得问题很简单,但是
在分析问题的时候,由于程序又大,花了很长时间才找到这个问题
所以C++当遇到内存出错的问题之后,其实体现出来的,或者报出来的出错信息,都是
不准确的,甚至在这一行cout出来的值是正确的,也不代表上面的运算是正确的。。。
。。。一个地方的内存出了问题,天知道它会在哪里报出什么样的错误。。。。这一点
很头疼啊。。。。是不是都是靠经验啊? |
|
x****t 发帖数: 389 | 45 来自主题: Programming版 - C++弱问 问题是。。。。
请问我怎样在构造函数中初始以及和析构函数中delete这个xyz?
多谢!!!! |
|
x****t 发帖数: 389 | 46 来自主题: Programming版 - C++弱问 多谢各位!!
这样的话,“abc.h”不变,而“abc.cpp”就可以写成:
#include
using namespace std;
#include "abc.h"
ABC::ABC()
{
a = NULL;
}
ABC::~ABC()
{
if(a) delete[]a;
}
XXX::XXX()
{
xyz = NULL;
}
XXX::~XXX()
{
if(xyz) delete[]xyz;
}
void ABC::sth()
{
int num_1; cin>>num_1;
int num_2; cin>>num_2;
a = new XXX[num_1];
for (int i=0;i
{
a[i].xyz = new int[num_2];
}
}
请问在运行完之后,程序如何析构?应该先delete掉xyz还是a? C++自己会如何 |
|
z**k 发帖数: 629 | 47 楼主的示例似乎有错,是不是想说这样:
class a
{
...
};
class b
{
...
};
main(){
a a1;
b b1;
..
..
..
}
那么在main函数的"}"处,b1的destructor先被调用,然后再调a1的析构函数. |
|
k****f 发帖数: 3794 | 48 nodnod
看c++那么多构造析构的破规矩
真是麻烦的很。 |
|
w***g 发帖数: 5958 | 49 觉得写得很不好. 比如在讲要多态类需要定义虚析构函数的时候, 文中一直说类而不是
说多态类, 还举了个例子说继承了std::string可能会出问题, 最后才提了一下这个问题
对需要多态的基类才成立. 个人觉得非常confusing. 我觉得std::string这个例子在这
里非常不好. std::string本来就不是个多态类.
还举了个先static_cast再const_cast的例子, 觉得挺不妥. 我觉得即使要多写几行代码
也应该避免cast.
在讲避免全局类初始化顺序不确定时说可以通过把它们嵌在函数中作为局部静态变量,
这样在函数第一次调用时才被初始化. 这没什么不对,但最后提了一句说这种函数比较
适合作为inline函数, 觉得就不对了.
只看到这里. 本书固然提到了不少值得注意的问题, 但是不少地方的表述比较confusin
g, 还需要改进. |
|
X****r 发帖数: 3557 | 50 确切地说是
int *pp = new int;
虽然在这里因为int是固有类型没有析构函数所以也问题不大。 |
|