TSC EB1B PP被NOID 了, 大家给帮帮忙出出主意吧# Immigration - 落地生根
l*n
1 楼
说实话,LinkedIn 是我面试过的相当拖拉的公司。看到不少人因电话面试3,4天就感觉
没戏了,我都忍不住地想,太着急了。以下是我的经历,相当拖拉。我写得也挺拖拉,
但希望对面试他家的朋友有所帮助。
1.初接触
在去年6月,我通过版上的一朋友推荐,到现在大概8个月了,才算结束。当然这其中也
有我的因素。
我给那朋友发了email包括我的简历,他并没有回,所以我一直不知道是有人推荐,也不
知道推荐人名字。直到后来recuiter问(可能是为了confirm reference bonus),才想
起来查以前发出的email。
recuiter到7月中旬才联系我。我还以为他在网上找到的我呢。我只在linkedin放了简
单的简历,也没有对外公开。记得但是对被发现感到比较惊奇。但是,我看了一下job
description,不很match.我就把面试推了。但是表示了对公司的强烈兴趣,并同意看看
他家其他的工作,有合适的联系他。
到十月中旬,recruiter又联系我。但是,我此时在中国,正好度一个一个月的长假。
只好在十一月再面试。面试SET position.
2.初次phone(recruiter)
基本上只是问了些情况,了解下情况,没有技术问题。被告知会“很快”安排技术面试
。鉴于我对很快的理解,在一周时催了一下。第一次技术phone面试被安排到十一月中
旬。
3.第一次技术phone interview
共有两个面试官,一个是lead,另一个是shadow.
共有两道coding题。第一个是判断一个string是否为数。得考虑负数,既带小数点的数
。需要注意不能存在多个小数点。
第二个是求pow(double b, int n),一开始我给的方案是简单连乘,复杂度O(n)后来想
到一个olog(n)方法:
public double pow(double a, int b) throws Exception {
if(a==0 && b<0) throw new Exception();
boolean isNegative = false;
// check whether b is negative.
if(b < 0) {
isNegative = true;
b = b * -1;
}
double currentBase = a;
double val = 1;
while(b != 0)
{
int oriB = b;
b = oriB >> 1;
if(b << 1 != oriB)
val *= currentBase;
currentBase *= currentBase;
}
// In case of negative exp number.
if(isNegative)
{
val = 1 / val;
}
return val;
}
3.第二次技术phone interview
面试官是刚到LinkedIn的,说话语速很快。可能是对她的新position (management role)很满意,也可能是我们的背景比较相似,滔滔不绝地介绍她自己花了大概15分钟。我这个急呀。
基本是上问了只一道coding题:two sum 的变体:
设计一class, with two methods:
Save(int input):
add a number, input to the collection of integers
Test(int target)
Test whether there exist two numbers, whose sum is the target. Return true is such two number exist, false otherwise.
我说见过这道题,她让我讲思路。我说了保持sorted数组,从两头向中间找的做法。她说不是很一样,我们用另一种做法。我就用了hashtable:
public class TwoSum {
public void save(int input)
{
int originalCount = 0;
if(h.containsKey(input))
{
originalCount = (int)h.get(input);
}
h.put(input, originalCount + 1);
}
public boolean test(int test){
Iterator i = h.keySet().iterator();
while(i.hasNext()){
int c = i.next();
if(h.containsKey(test - c))
{
boolean isDouble = test == c * 2;
int frequency = (int)h.get(c);
boolean appearOnlyOnce = (frequency == 1);
if(!(isDouble && appearOnlyOnce ))
return true;
}
}
return false;
}
Hashtable h = new Hashtable();
}
(未完待续)
没戏了,我都忍不住地想,太着急了。以下是我的经历,相当拖拉。我写得也挺拖拉,
但希望对面试他家的朋友有所帮助。
1.初接触
在去年6月,我通过版上的一朋友推荐,到现在大概8个月了,才算结束。当然这其中也
有我的因素。
我给那朋友发了email包括我的简历,他并没有回,所以我一直不知道是有人推荐,也不
知道推荐人名字。直到后来recuiter问(可能是为了confirm reference bonus),才想
起来查以前发出的email。
recuiter到7月中旬才联系我。我还以为他在网上找到的我呢。我只在linkedin放了简
单的简历,也没有对外公开。记得但是对被发现感到比较惊奇。但是,我看了一下job
description,不很match.我就把面试推了。但是表示了对公司的强烈兴趣,并同意看看
他家其他的工作,有合适的联系他。
到十月中旬,recruiter又联系我。但是,我此时在中国,正好度一个一个月的长假。
只好在十一月再面试。面试SET position.
2.初次phone(recruiter)
基本上只是问了些情况,了解下情况,没有技术问题。被告知会“很快”安排技术面试
。鉴于我对很快的理解,在一周时催了一下。第一次技术phone面试被安排到十一月中
旬。
3.第一次技术phone interview
共有两个面试官,一个是lead,另一个是shadow.
共有两道coding题。第一个是判断一个string是否为数。得考虑负数,既带小数点的数
。需要注意不能存在多个小数点。
第二个是求pow(double b, int n),一开始我给的方案是简单连乘,复杂度O(n)后来想
到一个olog(n)方法:
public double pow(double a, int b) throws Exception {
if(a==0 && b<0) throw new Exception();
boolean isNegative = false;
// check whether b is negative.
if(b < 0) {
isNegative = true;
b = b * -1;
}
double currentBase = a;
double val = 1;
while(b != 0)
{
int oriB = b;
b = oriB >> 1;
if(b << 1 != oriB)
val *= currentBase;
currentBase *= currentBase;
}
// In case of negative exp number.
if(isNegative)
{
val = 1 / val;
}
return val;
}
3.第二次技术phone interview
面试官是刚到LinkedIn的,说话语速很快。可能是对她的新position (management role)很满意,也可能是我们的背景比较相似,滔滔不绝地介绍她自己花了大概15分钟。我这个急呀。
基本是上问了只一道coding题:two sum 的变体:
设计一class, with two methods:
Save(int input):
add a number, input to the collection of integers
Test(int target)
Test whether there exist two numbers, whose sum is the target. Return true is such two number exist, false otherwise.
我说见过这道题,她让我讲思路。我说了保持sorted数组,从两头向中间找的做法。她说不是很一样,我们用另一种做法。我就用了hashtable:
public class TwoSum {
public void save(int input)
{
int originalCount = 0;
if(h.containsKey(input))
{
originalCount = (int)h.get(input);
}
h.put(input, originalCount + 1);
}
public boolean test(int test){
Iterator
while(i.hasNext()){
int c = i.next();
if(h.containsKey(test - c))
{
boolean isDouble = test == c * 2;
int frequency = (int)h.get(c);
boolean appearOnlyOnce = (frequency == 1);
if(!(isDouble && appearOnlyOnce ))
return true;
}
}
return false;
}
Hashtable h = new Hashtable
}
(未完待续)