Indeed 面經
阿新 • • 發佈:2018-02-04
後來 round 過去 long 自己 部分 沒有 gsp 整形
public Solution {
static final WINDOW = 5*60*1000;
long now();
double mean();
void put(int value);
}
感覺Indeed的面試官很喜歡把多線程的東西作為follow-up,比如ExpiringMap,比如我這個。
給一個list, 如何把裏面的字符分配到盡量少的子list裏,並且每個子list沒有重復元素。
比如
[‘a‘,‘b‘,‘c‘,‘a‘,‘a‘,‘b‘], 可以分成[‘a‘, ‘b‘, ‘c‘], [‘a‘, ‘b‘], [‘a‘]
[‘a‘, ‘a‘, ‘a‘, ‘b‘, ‘b‘, ‘b‘],可以分成[‘a‘, ‘b‘], [‘a‘, ‘b‘], [‘a‘, ‘b‘]
先給出了O(n*2)的解法,後來發現可以先數一遍字符個數,找到出現最多的,比如a出現3次,就建3個子list,然後把每種字符round robin那樣放進各個list就行了, 這樣是O(n)
半小時電面,面試官叫Prabu,在西雅圖office的印度人,是個manager。簡要介紹一番,開始做題。題目比較經典,有整形數據流,求過去五分鐘來的所有整數的mean。
寫了個List,創建了自己的數據類來存val和timeStamp,新的後面加List,過期的在頭部刪除。
把刪除的部分放在了mean()函數裏,follow-up說這樣太慢,就提出來放到一個cleaner()函數裏,同時寫了個Thread 沒過一段時間跑一次cleaner(),
同時mean()裏面也要先調用cleaner。然後被問到多線程需要註意啥,就指出一段code是critical section,要用鎖保護。
小貼士:要寫註釋,把和面試官討論到但是沒寫的follow-up,都加到註釋裏,as good evidence。
. from: 1point3acres.com/bbs
public Solution {
static final WINDOW = 5*60*1000;
long now();
double mean();
void put(int value);
}
感覺Indeed的面試官很喜歡把多線程的東西作為follow-up,比如ExpiringMap,比如我這個。
面經總結:
http://interviewsource.blogspot.com/
Indeed 面經