h**********d 发帖数: 4313 | 1 公司名就不说了,不是大公司
不过效率极高,从hr联系我到拿到offer,3周不到。。。(一个重要的原因是我一开始
就跟他说我有学校offer了,他问我prefer学校还是industry,我赶紧说当然industry
更好~)
电面1, SW director
问了interface vs abstract class, encapsulation(为啥要用,我解释了privacy,
protect data, 他似乎不是很满意。。), exception throw的overridden为什么不能
throw更多exception, SQL语句, 问文件如果不打开如何知道有多少行(我说用linux
command.... 想了以下, cat -n|tail ? 不过他没说啥貌似听到用command很满意。。
。)
后来还做了coding assesment, OO Design, 一个小时,写了7个class,用了delegate
pattern,自我感觉比较牛叉的design (LOL)
果然director 发信来说他们都很enjoy我的homework,哈哈哈(这还用说么)
电面2, SW manager
BST search
电话本 OO design
电话本data base design,我没做出来。。。从来不denormalize data base design的
人飘过。。。
电话本数据结构如何设计,讲一下什么是TRIE
on-site题目都不难,大多都见过
1. SD manager
a. research project 架构
b. 写程序,反转链表
c. Singleton实现,什么情况下会打破只有一个Singleton object(两种情况)
d. 最喜欢的pattern(Decorator pattern), class diagram, 用处
2. SD manager
a. Facebook 一个人有多个friends,用什么数据结构。如果要把关系存入database,
怎么设计scheme
b. 给定一个matrix中一个sub-matrix的对角顶点坐标,写程序计算sub-matrix sum
lunch
3. SW director
a. 用两种方式实现Singleton(我只会一种。。)
b. 比较两种方式的异同/优缺点
c. 传统方式的Singleton如何解决multi-thread 问题(3种方法)
d. puzzle,10个box里面各有10个1oz的球,except有一个box里面都是0.9oz的,如何
找出
4. 又一SD manager
a. 写程序,print telephone words,给一个validate words library,输出所有对应
的validate words
b. 没见过的题:一个整数数组,每个item的数值和它的index相差小于等于k,给定k,
如何排序
比如 k = 5
数组为 [3, 5, 1, 0, 7, 2, 6, 4, 9, 8]
5. platform SD manager
这个比较吓人,这个组是C++的,我有点小恐惧。。
先写一个简单的程序,scan 一个string,找出a字母出现的个数
接着上面的,写一个recursive 的程序
接着上面的,写一个recursive,且不带用 if-else, for, while loop。可以认为
string以0结尾
(前两个秒速写完,这个想了很久,经告知答案后,still呆住。。C++ programmer就
是牛啊lol 跟我说你回家试试吧,我相信java可以这么弄的。。)
6. VP
随便聊聊,看这刚才白版上C++的程序笑问那是啥题,我讲了下我说最后一个没做出来
,他笑说那人问过他这题,他觉得很好笑每次都要求candidate做这个题
讲了讲公司前景,能赚多少钱,市场多么好。。。他要招最优秀的SDE。。。还说第一
份工作选择要慎重 blabla...
7. SDE
最后一个SDE VP说不用面了,他要找他开会
我就回酒店,吃了晚饭,HR打电话来说feedback很不错,但有两个组的manager still
认为有些东西忘记问我了,问晚上或者明天早上有没有时间再见一下。。。我晕,我明
早8点的飞机呀,要不你现在来吧。。。。
可怜我都洗过澡准备上床看电视了,又把西装穿上。。。下楼继续被追面。。。他们还
是就派了哲人来
a. 一个Collection, 一个Collection, Person有 PersonId 和 name
, Color有colorName 和 personID
要求输出每个PersonName & colorName 组合
心想这也太简单了。。。说了3种方法,从brute force到用hashmap,最后O(n+m)
b. 讲了一堆他们那什么繁冗的log file,里面有很多重复的String,如果总是跳出JVM
memory不足,如何解决
一开始我讲了一堆,你把file搞小点,把heap搞大点啊,都被说不是这意思
然后才明白原来是String object太多啊,java 好像有个String pool吧,不要每次都
用new就好,他点头,但还是要解决
最后绕来绕去,终于明白了,原来是要design一个LRU cache,把没用的信息如date
time删掉,经常用的寸着,保持memory不溢出。心里窃喜,我又见过这题~ 顺利做完。 | q****x 发帖数: 7404 | 2 coding assesment, OO Design, 一个小时,7个class,用delegate pattern
?
a. 用两种方式实现Singleton。
pointer vs reference?
b. 比较异同/优缺点
?
c. 传统方式的Singleton如何解决multi-thread 问题(3种方法)
?
写一个recursive,且不带用 if-else, for, while loop。可以认为string以0结尾
?
industry
,
linux
【在 h**********d 的大作中提到】 : 公司名就不说了,不是大公司 : 不过效率极高,从hr联系我到拿到offer,3周不到。。。(一个重要的原因是我一开始 : 就跟他说我有学校offer了,他问我prefer学校还是industry,我赶紧说当然industry : 更好~) : 电面1, SW director : 问了interface vs abstract class, encapsulation(为啥要用,我解释了privacy, : protect data, 他似乎不是很满意。。), exception throw的overridden为什么不能 : throw更多exception, SQL语句, 问文件如果不打开如何知道有多少行(我说用linux : command.... 想了以下, cat -n|tail ? 不过他没说啥貌似听到用command很满意。。 : 。)
| s**x 发帖数: 7506 | 3 b. 没见过的题:一个整数数组,每个item的数值和它的index相差小于等于k,给定k,
如何排序
比如 k = 5
数组为 [3, 5, 1, 0, 7, 2, 6, 4, 9, 8]
??? | P**********c 发帖数: 3417 | 4 这个是不是说整数的范围不超过-k~n+k, 所以可以用hash table数个数?
【在 s**x 的大作中提到】 : b. 没见过的题:一个整数数组,每个item的数值和它的index相差小于等于k,给定k, : 如何排序 : 比如 k = 5 : 数组为 [3, 5, 1, 0, 7, 2, 6, 4, 9, 8] : ???
| s**x 发帖数: 7506 | 5 不是的。
【在 P**********c 的大作中提到】 : 这个是不是说整数的范围不超过-k~n+k, 所以可以用hash table数个数?
| q****x 发帖数: 7404 | 6 seems a classical one.
【在 s**x 的大作中提到】 : b. 没见过的题:一个整数数组,每个item的数值和它的index相差小于等于k,给定k, : 如何排序 : 比如 k = 5 : 数组为 [3, 5, 1, 0, 7, 2, 6, 4, 9, 8] : ???
| P**********c 发帖数: 3417 | 7 那是怎么样?
【在 s**x 的大作中提到】 : 不是的。
| g****x 发帖数: 3862 | 8 厉害厉害,叫我ld来学习了。
有没有什么找工作的经验呀?
industry
,
linux
【在 h**********d 的大作中提到】 : 公司名就不说了,不是大公司 : 不过效率极高,从hr联系我到拿到offer,3周不到。。。(一个重要的原因是我一开始 : 就跟他说我有学校offer了,他问我prefer学校还是industry,我赶紧说当然industry : 更好~) : 电面1, SW director : 问了interface vs abstract class, encapsulation(为啥要用,我解释了privacy, : protect data, 他似乎不是很满意。。), exception throw的overridden为什么不能 : throw更多exception, SQL语句, 问文件如果不打开如何知道有多少行(我说用linux : command.... 想了以下, cat -n|tail ? 不过他没说啥貌似听到用command很满意。。 : 。)
| h**********d 发帖数: 4313 | 9 学习不敢当。。。我刚才写了一堆session过期了。。。我没存。。。
【在 g****x 的大作中提到】 : 厉害厉害,叫我ld来学习了。 : 有没有什么找工作的经验呀? : : industry : , : linux
| h**********d 发帖数: 4313 | 10 他是这么说的
先看index 为0的地方,应该放哪个?应该是前k个数中最小的那个(selection),所以
swap 3 with 0
最后变成这样
0, 5, 1, 3, 7, 2, 6, 4, 9, 8
0, 1, 5, 3, 7, 2, 6, 4, 9, 8
0, 1, 2, 3, 7, 5, 6, 4, 9, 8
.
.
.
复杂度为O(n*k),在k小的时候比较efficient,对于他们组处理某个log file排序有极
大帮助(真无聊)
【在 s**x 的大作中提到】 : b. 没见过的题:一个整数数组,每个item的数值和它的index相差小于等于k,给定k, : 如何排序 : 比如 k = 5 : 数组为 [3, 5, 1, 0, 7, 2, 6, 4, 9, 8] : ???
| | | h**********d 发帖数: 4313 | 11 不是,就是每个数离它应该在的位置左右位移不超过k
【在 P**********c 的大作中提到】 : 这个是不是说整数的范围不超过-k~n+k, 所以可以用hash table数个数?
| P**********c 发帖数: 3417 | 12 哦,原来是目前位置和应该在的位置比较。
【在 h**********d 的大作中提到】 : 不是,就是每个数离它应该在的位置左右位移不超过k
| h**********d 发帖数: 4313 | 13 design题就算了,就是最基本的delegate pattern..
Singleton那个我居然记不得了。。。。
除了传统方法
还有一个也是private constructor, 好像用的是static method去access static
reference
缺点是不能用polymophysm, 因为static(我当时狂点头,现在又想不起来难道要
subclass singleton用??)
multi-thread
可以把method搞成synchronized(影响performance)
可以agressivly init reference
也可以用double check locking
【在 q****x 的大作中提到】 : coding assesment, OO Design, 一个小时,7个class,用delegate pattern : ? : a. 用两种方式实现Singleton。 : pointer vs reference? : b. 比较异同/优缺点 : ? : c. 传统方式的Singleton如何解决multi-thread 问题(3种方法) : ? : 写一个recursive,且不带用 if-else, for, while loop。可以认为string以0结尾 : ?
| P**********c 发帖数: 3417 | 14 Singleton这个thinking in C++里有。写出来复习一下
方法一:
class Singleton{
static Singleton s;
int i;
Singleton(int x):i(x){}
Singleton& operator=(Singleton&);
Singleton(const Singleton&);
public:
static Singleton& instance() { return s;}
int getValue(){return i;}
void setValue(int x) {i=x;}
}
Singleton singleton::s(47);
方法二:
class Singleton{
int i;
Singleton(int x): i(x) {}
void operator=(Singleton&);
Singleton(const Singleton&);
public:
static Singleton& instance(){
static Singleton s(47);
return s;
}
int getValue() {return i;}
void setValue (int x) {i=x;}
}
【在 h**********d 的大作中提到】 : design题就算了,就是最基本的delegate pattern.. : Singleton那个我居然记不得了。。。。 : 除了传统方法 : 还有一个也是private constructor, 好像用的是static method去access static : reference : 缺点是不能用polymophysm, 因为static(我当时狂点头,现在又想不起来难道要 : subclass singleton用??) : multi-thread : 可以把method搞成synchronized(影响performance) : 可以agressivly init reference
| a**********2 发帖数: 340 | 15 a. 一个Collection, 一个Collection, Person有 PersonId 和 name
, Color有colorName 和 personID
要求输出每个PersonName & colorName 组合
心想这也太简单了。。。说了3种方法,从brute force到用hashmap,最后O(n+m)
不太明白这题,求组合怎么做到O(n+m)? | P**********c 发帖数: 3417 | 16 先把personID-->personName存成一个hash table, 然后遍历所有的color collection?
name
【在 a**********2 的大作中提到】 : a. 一个Collection, 一个Collection, Person有 PersonId 和 name : , Color有colorName 和 personID : 要求输出每个PersonName & colorName 组合 : 心想这也太简单了。。。说了3种方法,从brute force到用hashmap,最后O(n+m) : 不太明白这题,求组合怎么做到O(n+m)?
| g*****k 发帖数: 623 | 17 int f(const char *s) {
return (*s? (*s=='a'? 1:0)+f(++s) : 0);
}
string以0结尾
【在 h**********d 的大作中提到】 : design题就算了,就是最基本的delegate pattern.. : Singleton那个我居然记不得了。。。。 : 除了传统方法 : 还有一个也是private constructor, 好像用的是static method去access static : reference : 缺点是不能用polymophysm, 因为static(我当时狂点头,现在又想不起来难道要 : subclass singleton用??) : multi-thread : 可以把method搞成synchronized(影响performance) : 可以agressivly init reference
| o*******y 发帖数: 810 | 18 thanks for sharing1
虽然不是跟我一个领域,也看不懂,轻轻飘过 with my bless congs! | q****x 发帖数: 7404 | 19 第一次交换之后,之前的条件就可能不成立了。以下怎么进行?
【在 h**********d 的大作中提到】 : 他是这么说的 : 先看index 为0的地方,应该放哪个?应该是前k个数中最小的那个(selection),所以 : swap 3 with 0 : 最后变成这样 : 0, 5, 1, 3, 7, 2, 6, 4, 9, 8 : 0, 1, 5, 3, 7, 2, 6, 4, 9, 8 : 0, 1, 2, 3, 7, 5, 6, 4, 9, 8 : . : . : .
| a********m 发帖数: 15480 | 20 被交换的数都是往后跳,所以每次交换应该都会满足条件。 | | | q****x 发帖数: 7404 | 21 跳过头怎么办?
【在 a********m 的大作中提到】 : 被交换的数都是往后跳,所以每次交换应该都会满足条件。
| h**********d 发帖数: 4313 | 22 对
【在 a********m 的大作中提到】 : 被交换的数都是往后跳,所以每次交换应该都会满足条件。
| a********m 发帖数: 15480 | 23 不可能跳过头。i
【在 q****x 的大作中提到】 : 跳过头怎么办?
| p*****5 发帖数: 17 | 24 受你的启发, 可以建立一个k个数的min-heap,每次extract min,然后把下一个数拿
进来,这样是lgk*n
另外一个方法,因为知道整个list数的范围是1--n+k,可以用count sort,第一次
遍历,找出所有数的count,第二次遍历排好,这样是 2n+k。
【在 h**********d 的大作中提到】 : 他是这么说的 : 先看index 为0的地方,应该放哪个?应该是前k个数中最小的那个(selection),所以 : swap 3 with 0 : 最后变成这样 : 0, 5, 1, 3, 7, 2, 6, 4, 9, 8 : 0, 1, 5, 3, 7, 2, 6, 4, 9, 8 : 0, 1, 2, 3, 7, 5, 6, 4, 9, 8 : . : . : .
| h**********d 发帖数: 4313 | 25 赞,第一个不错。第二个,他没说数组item一定是连续的,所以应该不行
★ 发自iPhone App: ChineseWeb - 中文网站浏览器
【在 p*****5 的大作中提到】 : 受你的启发, 可以建立一个k个数的min-heap,每次extract min,然后把下一个数拿 : 进来,这样是lgk*n : 另外一个方法,因为知道整个list数的范围是1--n+k,可以用count sort,第一次 : 遍历,找出所有数的count,第二次遍历排好,这样是 2n+k。
| g*******a 发帖数: 149 | | s********e 发帖数: 340 | | n**z 发帖数: 155 | | p****2 发帖数: 387 | 29 This is cool
【在 g*****k 的大作中提到】 : int f(const char *s) { : return (*s? (*s=='a'? 1:0)+f(++s) : 0); : } : : string以0结尾
| p****2 发帖数: 387 | 30 This is cool
【在 g*****k 的大作中提到】 : int f(const char *s) { : return (*s? (*s=='a'? 1:0)+f(++s) : 0); : } : : string以0结尾
|
|