群暉面試心得 - 面試
By Bennie
at 2017-01-13T10:44
at 2017-01-13T10:44
Table of Contents
小弟現在在當替代役預計2月初退伍, 所以最近開始面試工作, 面試過了幾家公司覺得
群暉的面試經驗滿不錯的, 趁還沒忘記上來分享給大家.
先講結論:第四關被打槍
背景
小弟113學+114碩博, 研究領域是Text indexing/Compressive sensing/Scheduling
面試第一關
1. 用白板實做出linked list的reverse
過程: [很普通的reverse]
2. 如果今天是要2個node作反轉該怎麼做? ex: 3->4->5->6->7 變成 4->3->6->5->7
解法: recursion, 先把node#1跟node#2交換, 再讓node#1->next指向下一個
recursion call的回傳值
e.g. 3->next = recursion(4->next)
3. 如果今天要推廣到k個node作反轉該怎麼做?
解法: 一開始我說就多加一個counter來計算目前反轉了幾個node, 然後把這個
counter當作call recursion的條件 e.g. if (counter == k) recur()
不過面試官有說這樣會有問題, 因為當linked-list長度不是k的倍數
的時候不應該把不滿k的作反轉
e.g. (k=3) 1-2-3-4-5 => 3-2-1-4-5 不該是 3-2-1-5-4
我就改成先做traverse, 等確定夠的話再轉
面試第二關
1. 給一個N*M的Matrix, 特性是每個row從左到右是排序過的, 每個column從
上到下也是排序過的
e.g.
─────→
│┌─┬─┬─┐
││1 │2 │3 │
│├─┼─┼─┤
││4 │5 │6 │
│├─┼─┼─┤
││7 │8 │9 │
↓└─┴─┴─┘
要怎麼作search?
解法: 一開始想不到甚麼好方法就先提出N個binary search的方法, 時間是
O(NlogM), 面試官就請我實作出binary search. 實做完再想了一陣子,
有想出O(N+M)的解法, 方法就是每次都比右上角的那個數字,
根據比的結果可以刪掉一個row或是column
e.g. key=5
┌─┬─┬─┐
│1 │2 │3<5
├─┼─┼─┤ ┌─┬─┬─┐
│4 │5 │6 │ => │4 │5 │6 │
├─┼─┼─┤ ├─┼─┼─┤
│7 │8 │9 │ │7 │8 │9 │
└─┴─┴─┘ └─┴─┴─┘
e.g. key=2
┌─┬─┬─┐ ┌─┬─┐
│1 │2 │3>2 │1 │2 │
├─┼─┼─┤ ├─┼─┤
│4 │5 │6 │ => │4 │5 │
├─┼─┼─┤ ├─┼─┤
│7 │8 │9 │ │7 │8 │
└─┴─┴─┘ └─┴─┘
2. process/thread的比較, TCP/UDP的差別, multi-thread programming
過程: 這部分我沒講好, 想到甚麼就說甚麼, 不過網路部分我很多都答不出來,
像是為甚麼youtube可以傳資料傳那麼順之類的
面試第三關
1. 給一個字串, 將單字順序反轉
解法: 一開始沒想到好做法, 就用loop從頭開始掃, 然後複製到尾巴那邊,
不過這邊寫白板一直鬼打牆在處理boundary的問題, 後來直接重新弄一個
方法先把整個字串反轉再分別把個別的單字轉回來
2. 給一串數字, 如何判斷有沒有某個數字的出現頻率超過50%
過程: 一開始我說如果空間不限那就開一個很大很大的vector, 不過面試官說
當然不行XD 後來我就說最簡單的方法就是排序後再從頭找, 也可以用hash
不過worst case就無法保證linear time. 接下來面試官又問, 那如果
排序好的話呢? 我就說那就直接看中間那個數字.
最後的問題是如果已經確定有一個數字超過50%, 不過未排序, 有沒有
辦法找出來? 我一開始說用linear time select找中位數, 時間是
O(n), 不過面試官好像不滿意, 他給的提示是如果有某個數字a過半,
那如果我們把a跟其他另外的數字一對一的配對, 那最後一定會剩下a,
我的解法就是從這串數字的頭開始跑, 碰到兩個不一樣的就刪掉,
碰到一樣的就繼續往下比
e.g. 1 2 2 1 1 => 1 2 2 1 1 (紅色表示已經刪掉)
=> 1 2 2 1 1
e.g. 2 2 1 1 1 => 2 2 1 1 1
=> 2 2 1 1 1
大概是這樣, 實作時有用到stack
第四關就看到HR進來XD
HR滿可愛的, 一臉抱歉的樣子XD
這次總面試時間4.5hr, 中間其實等待時間滿久的, 不過面試的感覺不錯,
很可惜沒拿到offer, 不然感覺在這個公司工作coding應該會進步神速
--
--
群暉的面試經驗滿不錯的, 趁還沒忘記上來分享給大家.
先講結論:第四關被打槍
背景
小弟113學+114碩博, 研究領域是Text indexing/Compressive sensing/Scheduling
面試第一關
1. 用白板實做出linked list的reverse
過程: [很普通的reverse]
2. 如果今天是要2個node作反轉該怎麼做? ex: 3->4->5->6->7 變成 4->3->6->5->7
解法: recursion, 先把node#1跟node#2交換, 再讓node#1->next指向下一個
recursion call的回傳值
e.g. 3->next = recursion(4->next)
3. 如果今天要推廣到k個node作反轉該怎麼做?
解法: 一開始我說就多加一個counter來計算目前反轉了幾個node, 然後把這個
counter當作call recursion的條件 e.g. if (counter == k) recur()
不過面試官有說這樣會有問題, 因為當linked-list長度不是k的倍數
的時候不應該把不滿k的作反轉
e.g. (k=3) 1-2-3-4-5 => 3-2-1-4-5 不該是 3-2-1-5-4
我就改成先做traverse, 等確定夠的話再轉
面試第二關
1. 給一個N*M的Matrix, 特性是每個row從左到右是排序過的, 每個column從
上到下也是排序過的
e.g.
─────→
│┌─┬─┬─┐
││1 │2 │3 │
│├─┼─┼─┤
││4 │5 │6 │
│├─┼─┼─┤
││7 │8 │9 │
↓└─┴─┴─┘
要怎麼作search?
解法: 一開始想不到甚麼好方法就先提出N個binary search的方法, 時間是
O(NlogM), 面試官就請我實作出binary search. 實做完再想了一陣子,
有想出O(N+M)的解法, 方法就是每次都比右上角的那個數字,
根據比的結果可以刪掉一個row或是column
e.g. key=5
┌─┬─┬─┐
│1 │2 │3<5
├─┼─┼─┤ ┌─┬─┬─┐
│4 │5 │6 │ => │4 │5 │6 │
├─┼─┼─┤ ├─┼─┼─┤
│7 │8 │9 │ │7 │8 │9 │
└─┴─┴─┘ └─┴─┴─┘
e.g. key=2
┌─┬─┬─┐ ┌─┬─┐
│1 │2 │3>2 │1 │2 │
├─┼─┼─┤ ├─┼─┤
│4 │5 │6 │ => │4 │5 │
├─┼─┼─┤ ├─┼─┤
│7 │8 │9 │ │7 │8 │
└─┴─┴─┘ └─┴─┘
2. process/thread的比較, TCP/UDP的差別, multi-thread programming
過程: 這部分我沒講好, 想到甚麼就說甚麼, 不過網路部分我很多都答不出來,
像是為甚麼youtube可以傳資料傳那麼順之類的
面試第三關
1. 給一個字串, 將單字順序反轉
解法: 一開始沒想到好做法, 就用loop從頭開始掃, 然後複製到尾巴那邊,
不過這邊寫白板一直鬼打牆在處理boundary的問題, 後來直接重新弄一個
方法先把整個字串反轉再分別把個別的單字轉回來
2. 給一串數字, 如何判斷有沒有某個數字的出現頻率超過50%
過程: 一開始我說如果空間不限那就開一個很大很大的vector, 不過面試官說
當然不行XD 後來我就說最簡單的方法就是排序後再從頭找, 也可以用hash
不過worst case就無法保證linear time. 接下來面試官又問, 那如果
排序好的話呢? 我就說那就直接看中間那個數字.
最後的問題是如果已經確定有一個數字超過50%, 不過未排序, 有沒有
辦法找出來? 我一開始說用linear time select找中位數, 時間是
O(n), 不過面試官好像不滿意, 他給的提示是如果有某個數字a過半,
那如果我們把a跟其他另外的數字一對一的配對, 那最後一定會剩下a,
我的解法就是從這串數字的頭開始跑, 碰到兩個不一樣的就刪掉,
碰到一樣的就繼續往下比
e.g. 1 2 2 1 1 => 1 2 2 1 1 (紅色表示已經刪掉)
=> 1 2 2 1 1
e.g. 2 2 1 1 1 => 2 2 1 1 1
=> 2 2 1 1 1
大概是這樣, 實作時有用到stack
第四關就看到HR進來XD
HR滿可愛的, 一臉抱歉的樣子XD
這次總面試時間4.5hr, 中間其實等待時間滿久的, 不過面試的感覺不錯,
很可惜沒拿到offer, 不然感覺在這個公司工作coding應該會進步神速
--
推 jacktypetlan: 我以前都叫我媽折紙尖爪給我XDDD可惜我媽現在已經 10/22 20:00
→ stv4268: 樓上拍拍 10/22 20:01
→ jacktypetlan: 不想折給我了...他說那很白痴10/22 20:01
--
Tags:
面試
All Comments
By Thomas
at 2017-01-14T16:40
at 2017-01-14T16:40
By Susan
at 2017-01-16T17:09
at 2017-01-16T17:09
By Rebecca
at 2017-01-21T09:20
at 2017-01-21T09:20
By Una
at 2017-01-23T04:58
at 2017-01-23T04:58
By Margaret
at 2017-01-23T23:14
at 2017-01-23T23:14
By Kumar
at 2017-01-27T21:09
at 2017-01-27T21:09
By Regina
at 2017-02-01T08:36
at 2017-02-01T08:36
By Carol
at 2017-02-06T02:31
at 2017-02-06T02:31
By Jake
at 2017-02-06T21:28
at 2017-02-06T21:28
By Bennie
at 2017-02-11T18:20
at 2017-02-11T18:20
By Gilbert
at 2017-02-13T05:17
at 2017-02-13T05:17
By Liam
at 2017-02-15T09:04
at 2017-02-15T09:04
By Gary
at 2017-02-16T14:01
at 2017-02-16T14:01
By Callum
at 2017-02-17T05:53
at 2017-02-17T05:53
By Isla
at 2017-02-18T16:29
at 2017-02-18T16:29
By Quanna
at 2017-02-21T16:54
at 2017-02-21T16:54
By Susan
at 2017-02-25T16:45
at 2017-02-25T16:45
By Rachel
at 2017-03-02T03:51
at 2017-03-02T03:51
By Odelette
at 2017-03-05T22:35
at 2017-03-05T22:35
By Rachel
at 2017-03-10T14:32
at 2017-03-10T14:32
By Candice
at 2017-03-15T09:58
at 2017-03-15T09:58
By Doris
at 2017-03-20T07:56
at 2017-03-20T07:56
By Robert
at 2017-03-21T22:16
at 2017-03-21T22:16
By Madame
at 2017-03-25T10:46
at 2017-03-25T10:46
By Lauren
at 2017-03-29T09:42
at 2017-03-29T09:42
By Sierra Rose
at 2017-04-02T03:32
at 2017-04-02T03:32
By Doris
at 2017-04-03T02:18
at 2017-04-03T02:18
By Victoria
at 2017-04-07T04:42
at 2017-04-07T04:42
By Ophelia
at 2017-04-09T21:03
at 2017-04-09T21:03
By Steve
at 2017-04-11T13:53
at 2017-04-11T13:53
By Skylar Davis
at 2017-04-15T13:36
at 2017-04-15T13:36
By Bennie
at 2017-04-15T16:45
at 2017-04-15T16:45
Related Posts
有聽過聯華電信嗎?
By Elizabeth
at 2017-01-12T23:49
at 2017-01-12T23:49
R的面試結果
By Genevieve
at 2017-01-12T23:10
at 2017-01-12T23:10
港商瑞健
By Poppy
at 2017-01-12T22:55
at 2017-01-12T22:55
力晶offer
By Yuri
at 2017-01-12T18:35
at 2017-01-12T18:35
請問菱生 維修工程師
By Hedwig
at 2017-01-12T17:21
at 2017-01-12T17:21