[心得] 群晖面试心得

楼主: bigbite (子子孙孙永保用)   2017-01-13 10:44:55
小弟现在在当替代役预计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应该会进步神速
作者: OPliao (OPman)   2017-01-13 10:50:00
哇 这么多关 好可惜
作者: ctx705f (键盘小妹)   2017-01-13 10:53:00
4.5hr好狂 感谢分享
作者: tw689 (台湾689)   2017-01-13 10:57:00
听在里面的讲现在已经越来越鸟了...
楼主: bigbite (子子孙孙永保用)   2017-01-13 10:58:00
楼上的愈来愈鸟指的是待遇吗?
作者: kong028 (空)   2017-01-13 11:08:00
好像没外传的多了
作者: ting301 ( )   2017-01-13 11:09:00
问的这么繁琐面得这么复杂待遇不知道比不比的过GG
作者: Ekmund (是一只小叔)   2017-01-13 11:11:00
屌...
作者: skyhigh8988 (将臣)   2017-01-13 11:12:00
Leetcode easy等级题目 群辉其实并没有各位想像中难OS跟Leetcode easy搭配Medium的树练习就差不多
作者: cha122977 (CHA)   2017-01-13 11:21:00
虽然是easy, 不过要写白版其实也是蛮头疼的
作者: skyhigh8988 (将臣)   2017-01-13 11:23:00
如果不熟其中的想法 还有熟悉语言特性的话临场就写不出来 通常刷个两轮 掌握好一个语言确定自己写过的题目都能闭眼想出来就差不多我面的时候还被问了LRU Cache 临场反应 也很重要想去上层就会被问到较多软件设计情境题反之的话就是OS或CA会再被更深入的挖掘
作者: final01 (牛顿运动定律)   2017-01-13 11:34:00
第二个方法有到O(n+m)?
作者: sc1 (sc1)   2017-01-13 11:47:00
好惨 没内推的结果PTT PO文技术高超
作者: jacktypetlan (四十四隻石獅子)   2017-10-22 20:00:00
我以前都叫我妈折纸尖爪给我XDDD可惜我妈现在已经
作者: stv4268 (镇痛解热药)   2017-10-22 20:01:00
楼上拍拍
作者: jacktypetlan (四十四隻石獅子)   2017-10-22 20:01:00
不想折给我了...他说那很白痴
作者: Ekmund (是一只小叔)   2017-01-13 12:20:00
屌在4.5hrs跟你搞了一堆白板 虽然我遇过6hrs的
作者: NCUking (中大王)   2017-01-13 14:44:00
FLG的面试手法 台湾等级的待遇 是这样吗?
作者: Ekmund (是一只小叔)   2017-01-13 18:21:00
有包括 因为一次面两个事业群 总共七八个人吧
作者: mathlover (mathlover)   2017-01-13 18:48:00
强我面汉文也要5hr汉翔
作者: KernelChen ( )   2017-01-13 19:08:00
面那么久不上 浪费大家时间
作者: angusyu (〒△〒)   2017-01-13 19:37:00
你有没有熟练的工具或框架啊
作者: typeklng ( )   2017-01-13 20:58:00
leetcode easy 等级的题目 +1
作者: hijamoya (阿玮)   2017-01-13 22:50:00
所以被刷掉的原因到底是啥
作者: catinclay (David)   2017-01-14 07:36:00
第三关也是lc 题 可以做到空间O(1)
作者: sweetpixy (pixy)   2017-01-14 15:41:00
这间已经没什么好期待的了 没上也不用太难过 底薪低分红也不如从前 加班费也舍不得给
作者: nnkkman (nn)   2017-01-16 12:18:00
听起来抠门程度跟对手那家有得比

Links booklink

Contact Us: admin [ a t ] ucptt.com