美文网首页
铃音 - 昂赛汇总

铃音 - 昂赛汇总

作者: Super_Alan | 来源:发表于2018-04-06 02:16 被阅读0次

    ml的职位

    昂赛6轮。。。第一次面完筋疲力尽,连开车去机场的力气都没有了,后来昂赛基本都没有租车,都是uber

    1. 设计个课程推荐系统,在linkedin网站上如果一个人要找工作的话,需要一些技能,有一些课程能够学到一些技能,如何给一个特定的职位推荐一些课程。就随便扯了扯,如果找到相似的人,看看他们有哪些技能,以及找工作的人缺少哪些技能。然后看那些课程能涵盖这些技能,并且排个序
    2. coding:基本都是tag题吧,找唯一名人(后来面某家又被问了一次);给两个排好序的列表,找到前K个product最小的pair (lc上类似题应该是找最小的sum)(咦,刚发现面另外一家时候也碰到了类似题,是3个列表,各取一个数,找range最小的。。。就是max(a,b,c)-min(a,b,c)最小的);lc原题,增加减少随机删除都是O(1)操作的那个.
    3. 吃饭。。有藕。。。.
    4. host manager:讨论了我的research中ml的部分是如果evaluate我们的模型到底如何的
    5. ml coding:变种的实现一个KNN(有的feature有缺失数据,一开始以为是推荐系统,吓尿了),在如何取得top K的时候,我是用sort或者heap来解决的,后来告诉我可以用O(n)的quick select
    6. ml 基础,就是问了一大堆问题,讲了一个model,有哪些metric可以用来evaluate模型(有本电子书叫Evaluating Machine Learning Models),然后讨论了随机森林,决策树,boosting树等等,也讨论了他们的bias和variance
    最后做了几个概率题。。差点跪了,不公平的硬币,扔了N次得到p个正面,概率就是p/N,结果问怎么推的。。。教科书上有,但是记不得了,好容易才写出来。另外一个题太复杂。。。描述不出来了,反正是贝叶斯公司推的


    报个铃音application track的onsite攒点人品,他家整体环境福利感觉还是不错的

    1. 烙印host manager,behavior question答得感觉一般
    2. 说话速度奇快的abc大哥,design, tiny url + topk frequent tiny url, 照着流程搞了一遍,中间被问的时候稍微有点卡住
    3. 混血小哥吃饭,说话也奇快,他家红烧肉不错
    4. coding 1,一个说话声音很轻没精打采的烙印,一副我欠他钱的样子,给一个list的set,{{a,b,c},{d},{e,f}},输出它们的Cartesian product {a,d,e},{a,d,f},{b,d,e},{b,d,f},{c,d,e},{c,d,f},recursive做好后要用iterative的for循环来写,第二题给定一个m*n的grid,上面有一些点代表一群人的位置,找最近的meet point
    5. coding 2,一个国人大姐,问了 利口 以奇死 和利口 气流
    6. tech communication,小哥因为做的跟我的很相似,问的超级细,画图讲的我累死

    系统设计:tinyUrl, 如何对付大规模
    Coding 1:LC68
    Coding 2: 在可以skip的substring中找出所有Palindrome(没有见过类似的题)LeetCode 703


    时间线:
    1月19号-朋友内推
    1月20号-HR联系
    1月29号-电面
    1月30日-通知通过,预约Onsite
    2月9日-Onsite
    2月12日-被告知Fail

    职位:
    Senior SDE, Application Track

    Onsite题目
    第一轮:Host Manager轮,印度老爷爷
    纯粹的BQ,为什么选择L家,你之前做了什么,然后聊了聊简历上的项目

    第二轮:Code 1,三哥哥+国人小哥Shadow
    题目1:给出2个sorted array,如何找intersection和union,秒
    题目2:蠡口特原题,K路归并,秒,然后分析了下时间复杂度

    第三轮:Lunch,国人兄弟
    这一轮不算分,就是纯粹的吃饭,聊天

    第四轮:Coding 2,国人女+国人小哥Shadow
    这一轮大家认真看,信息量很大,大家引以为戒
    题目1:蠡口特,粉刷房子1
    LZ就说,这是经典的DP问题,我们用DP做
    我先提出,创建一个同样大小的2d array,这样便于观察。
    在白板上非常详细的写出了算法的思路,并且清楚的写出了转换方程
    然后我提出了,可以更优化,额外的那个2d数组是没必要的
    如果我们允许modify input的话,可以直接在input上做。
    国女和小哥说没问题,我们做下一题吧

    题目2:蠡口特,粉刷房子2
    这一次就是,如果房子有N个颜色,该怎么做
    LZ就说,我们可以用之前粉刷房子1的思路,但是当N很大的时候,效率就不高了
    国女问我,那你怎么优化
    我说,方法很多。比如我可以就创建一个1d array with length N,来记录上一行的状态
    国女说没问题,你这个可以
    然后,算LZ我自己找死,我说,如果N非常非常大的话,我们还可以继续优化,这个1d array都可以不用
    因为这个题目,我们需要知道的就是,上一行里,best是什么,2nd best是什么,以及best在哪里
    我说,我创建3个变量来记录这3个值,每处理一行,就更新一下。
    国女似乎不知道这个是最佳答案,马上脸黑了下来。开始质疑我的答案
    因为我对这个答案是很确定的,是正确的,蠡口特上也跑过,accepted
    国女大概花了5分钟,不停的想找反例来推翻我的答案,然后一直找不出。
    她说算了,我们做下一题,我知道你的思路了

    题目3:SQRT,不同的是,是要找一个float的平方根
    LZ说,这个题有很多种解法,首先我们可以用纯数学的方法来做
    然后我大概在白板上写了下牛顿法怎么做,国女说没问题
    LZ然后说,我们也可以用贪心的方法做,比如从N=1开始
    如果N平方和input的差距大于允许的范围,N = (previous guess + 当前N)/2
    国女说没问题。
    然后国女说,能不能用二分法做呢,我说可以
    low = 1, high = target,mid = (low + high)/2
    以此类推,国女心里应该有另外一个标准答案,一直不停的质疑我当前的答案
    中间交流也出现了一些问题,因为我的答案和她心里的答案是有出入的

    今天HR给我说fail,说国女给我打的分非常低,如果是A-F来评价的话,是D这样的水平
    HR当时非常诧异,因为我电面算法的分数是A,然后coding1的分数也是A,coding2一下来了一个D
    HR问我什么情况,我就给HR说了当时的情况,随后HR给我说了,国女给我写的feedback
    大家体会一下,了解一下,游泳健身了解一下,心里一万个MMP了解一下

    题目1粉刷房子1的feedback
    说我题目解出来了,但我没有能够写出转换方程。
    我真的想问她,你tmd是在搞笑吗?这样写良心不会痛吗?
    一个DP的题目,如果我连转换方程都不出来,我如何能做出来?
    题目2粉刷房子2的feedback
    说我这个题目没有做出来,说我给出的答案,我无法证明我的答案是对的
    呵呵,除了呵呵和心里MMP,我还能说什么
    她自己的答案不是最优解,并且无法举出反例证明我的答案是错的
    就说我无法证明自己的答案是对的。她是不是觉得我的答案比她的更好,自己面子挂不住?
    题目3平方根Feedback
    说我没有用二分法做出来,说我对二分法基本的概念都不知道
    就像我前面写的,我提出了不同的方法,先花了不少时间写其他的方法
    再来聊的二分法,当时时间已经没有很多了。
    我真的想问她:“你TMD是在逗我吗,来来来,我们一起做一个binary search of rotated sorted array,你能够秒我就服你”

    HR知道了我反应的情况以后,也非常生气,也尽力去帮我争取能不能给个加面
    虽然最后也是无疾而终,不过还是很谢谢HR帮我争取了很多。

    第五轮:系统设计
    Top K Share,地里有面筋,就不详细写了

    第六轮:Technical Communication
    就是纯粹的聊项目


    电面记不得了但是非常简单。

    这个礼拜二的昂塞特。sys&infra。
    一共六轮,上午两轮coding,一轮BQ,然后吃饭,然后下午连着三轮设计。
    . 鍥磋鎴戜滑@1point 3 acres
    第一轮两个国人小哥
    1.1 Permutation I&II
    1.2 寻找数组里有没有三个数字可以组成一个三角形。楼主当时看到就以为是原题要找出所有可以组成三角形的三个数组,哗啦啦讲了一大堆,小哥说你这个复杂度太高了,纠结了一下还能怎么简化,结果发现人家只是让找有没有一组数字满足要求即可。。- - 时间不太够了就赶紧写了写完事。惨痛的教训:不要看到原题就激动的去做,一定要好好听完题。。

    第二轮白人小哥+三哥
    找到两个数组中前K个最小乘积。都是正数。不能有重复的。其实就是那个求和的变体。楼主打算用先推入K个到heap里的方法解决。结果白人小哥不太理解说你这样不对。楼主刷这道题有点久了差点被带偏。花不少时间终于把小哥说服。然后写完就差不多到时间了。感觉这轮本来可以多解决一道的。。

    第三轮BQ一个三姐就是常见那些BQ问题,有意见不统一怎么办。你最有成就感的项目是什么。之类的。

    下午开始系统设计三连击。其实感觉他家sys infra的系统设计真的就是那几道题。之前临时抱佛脚总结了版上的设计题,不外乎下面这些:
    KV设计。延时Task。TOP K。Monitor/Alert。
    然后真的就撞到了其中三道。
    但是因为只是纸上谈兵,其实讲的很虚,经常被面试官的问题给问住。

    第一轮国人大哥大姐。KV设计。大姐全程打酱油。大哥全程给我提示。
    前提条件:. 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴
    1. key很短可以假设只有8bit,可以保证全部keys能够都存在内存中,但是value很大必须存在disk中。
    2. disk的random读写会非常慢,但是顺序写入会很快
    3. 假设已经有个file system提供了write read API,但是具体API的接口怎样还得自己定义
    4. 实现get put delete
    大致解法:内存中存哈希表是key到硬盘上的文件位置。硬盘上的文件只顺序写入新值,不需要修改以前的值。问题:硬盘上文件存储的内容是什么。需不需要把key也存进去还是只存value。文件太多的时候怎么删除以前过期的数据。

    第二轮白人小哥老哥组合。延时task。全程主要是老哥在问。
    讲了用blocking queue和cyclic array的解法。老哥说你选哪种,根据实际情况选了blocking queue。producer和consumer用一个mutex,加了condition variable来唤醒consumer。但是其实多线程这里没有什么实际经验,之前虽然看了java内部blocking queue的实现方法,但是楼主用C++写的别别扭扭的。老哥说这锁加的太粗暴overhead会太大你怎么解决,楼主想了半天没想出太好办法就到时间了。老哥说你问问题吧,楼主就问老哥怎么解决这个lock的问题,老哥说这个问题不好解决- -

    第三轮小三哥+不知什么人大哥。设计一个系统,左边是一堆server可以发送某个指数(比如free memory)在某个时间点在某个node上的数值。右边是1. 用户要得到某段时间某个指数的图形。2. 用户可以设置一个alert专门监视某个指数到达某个数值就做某种action比如发送警报邮件之类的。要求设计整个流程同时考虑scalability和resilience。
    因为这轮刚开始的闲聊说到了卡夫卡。楼主就说中间可以用类似于卡夫卡的模式建立多个MQ。每个指数每个host当做一个topic。然后每个Q要有replicas。然后老哥的问题我就基本上纯属瞎猜了。。希望有经验的人士可以帮忙解答一下。问:message怎么发送到指定的Q,答:用一个LB来负责分配。问:如果放某个Q的node挂了怎么办,答:存着这个Q的replicas的server们选出一个替代原Q,告诉LB修改这个Q的地址。问:LB挂了怎么办,答:LB也要有replica。问:如果LB 正在转发某个message然后挂了怎么办,答:转发之前写入一个log需要接受的server给ack。于是大哥说那你何必需要这个log还得两次ack呢,本来就得要一个ack给原本产生消息的server呀,但是楼主压根没想到还需要给原来的server发ack。。然后就到时间了就没有然后了。这里感觉LB那里似乎加的不太对,导致了后面一系列问题跑偏了。

    面完到今天还没有回信。感觉多半是凉了。还是发一下面经回报下地里顺便攒个RP。
    心得体会:虽然他家系统设计就那么几道很容易撞上,但是就算准备了也不一定能答好。建议大家最好自己从头到尾所有细节写一遍,有条件的话找个朋友来mock一下比较好。

    补充内容 (2018-2-27 09:52):.
    修正一下KV store设计那道题。只是说random写会很慢要避免,顺序写会很快,random读没问题。。

    补充内容 (2018-2-28 07:17):
    因为有其他offer在等,所以催了一下recruiter,今天通知说已经过了HC开始准备team match啦,谢谢各位的祝福。


    本来是onsite, 结果下雪改成了远程video。
    不知道面的什么职位,大概是后端工程师跟ML工程师的结合。体验非常不好,总体感觉面试官非常aggressive,而且印度人好多(4轮里3个印度人)。 . 1point 3acres 璁哄潧
    1) system design。
    设计一个处理分析视频的系统。. 鐣欏鐢宠璁哄潧-涓€浜╀笁鍒嗗湴
    整体架构之类,如何对接到他们的系统,如何扩展,CAP那一套。并行,异步,可用框架问的比较多。
    2) culture
    一个自我感觉良好高高在上的烙印人渣,问了一堆nonsense的问题。比如, 什么是server, 什么是 machine learning。.
    非常非常傻逼。.
    3) ML design
    关于NLP的一些问题, 什么包可以用,如何construct feature,如何select feature, 如何valid model, 如何用word_2_vec, training 过程怎么feature reuse 等等。
    关于tradition ML的一些, 处理overfitting, missing data, 之类
    关于deploy and scale ML services的一些问题, 怎么去集成这些module在实际中
    4) coding,
    Q1) 一堆人站在路上,找一个点大家集合。求出这个点,大家走动距离最小。其实就是 array 找 median。
    写了 quick select, 讨论了一下大数据 bucketing, map reduce 的思路。
    Q2) 如果重新定义距离为之前的平方,求出新的点, 数学证明。 然后代码很简单了,其实就是 array 找 mean。


    反馈地里, 把领英最近的昂塞跪经说一下。。还是自己实力不济。。哎。。
    利口 二流妖,伞凄伞。。。 伞凄伞貌似是新题,然后没有想到好办法。。所以跪了。。
    系统设计是 top k 问题。。


    技术交流轮 (说项目)
    random,insert,remove O(1) LC 原题, Function call 算时间(lc不同得是只要求一个func的时间)
    LC160 + LC 265(注意考虑环)
    manager
    Design:别担心面试官聊天而已。有经验的别怕。偏分布式系统。


    昂赛一轮中加印,口德尔霸尔,估计是栽了。
    二轮,题很简单但不是tag,有点像口德溜。

    设计是top N 异常。


    不出意料的跪了,上面经。我是application track。. 1point3acres.com/bbs
    3月初面的,一周之后告诉我挂了。

    第一轮,一欧洲人,问我lc而七二和刷房子二,这轮没什么问题。
    第二轮,一中国大姐和一小印。这轮出事儿了。。。题目是最大栈,我看到题目之后说这题可以用两个栈,然后那中国大姐就给我停下了,意思说用两个栈不太好。问我了好几种不同的情况,比如总maxPop()要怎么办,我说那就不用两个栈,可以用链表,然后她又问了几种其他情况,我已经记不得了。。然后我问她你想让我按照哪种实现,她说这个看你啊。。。当时我就有点儿蒙了,我就一直没明白她想让我干什么。断断续续被问了还剩不到20分钟了,我说,我能一边写一边说么,她说你写吧。。。这时候我的脑子还在想着她要干什么,然后我又不太敢写,怕一写东西她就给我断下来。。。结果这一题还没写完,小印终于说了第一句话:姐,时间快到了,你看是不是该问问题了。。。。。。
    答完这轮之后我一脸蒙蔽的去吃饭,开始10分钟我还在琢磨上一轮那人想干什么。。。后来调整一下,和那个人聊的挺好的。. more info on 1point3acres.com

    下午第一轮和经理聊天,聊的还行吧,问问behaviour就过去了。

    接下来是系统设计,一中国小哥和一小印。问我malicious IP blacklist. 这轮真的答的一般,我把我会的都说了,之前地里有人说过这题,我还特意看了一那个什么章里面说的思路,但是感觉那个不准确呢还是我自己不太懂。。。那个中国小哥对我很照顾,不断的提示我。。答完感觉系统设计还得再多练!
    最后一轮聊项目。

    总结:还是自己水平差了一些,而且被一大姐给问蒙蔽了说明面试技巧什么的还得提高。后来我看最大栈两种解法,一个是两个栈,一个是用链表和TreeMap。如果谁有更好的解法欢迎指导指导。


    系统: monitor 灵应系统 1000 metrics 10,000 machines,设计系统,alert on metrics/host(s)/minutes
    系统: 灵应offline/realtime数据系统
    系统: in memory cron
    编程: intervals, 可以不停加,随时返回total coverage,


    | 1. Sy[stem]
    设计一个logging analyzer , analyzes each exception appears how many times within given time period, how to scale
    2. Technical round, 问你的project.
    3. shuffle array + LC 156
    4. Check if two tree are the same + check if two tree are symmetric + given a binary search tree, find the closest node with the given value |


    1 host manager : 主要是bh,面试官切换话题很自然 导致我都不记得问了哪些问题 感觉是在闲聊而不是面试首先相互介绍 然后有些记得的比如你为什么要离开现在公司, 或者当时为什么选择现在的公司, 为什么你觉得你可以当上senior, why linked in, 如果让你lead a project你会怎么做?.

    2 coding 1 :
    binary tree find path which the sum is equal to target
    自己clear ambuigity
    follow up 2 个

    3 吃饭, 轻松闲聊

    4 tech communication, 先自我介绍,然后把对方当成什么都不知道的,讲一个自己的project的
    他也会问问题 然后交流

    5 coding 2
    水塘抽样.

    6 system design
    blacklist IP


    | Onsite的时候碰到了一道新题,其他题都是tag题就不赘述了, sy[stem] design 也是面经题, top k shared link。
    新题: 替换substring。举个简单的例子:
    input: String s1= "abbc", List<String>() ={"b", "bb"}, List<String>() {"def", "dfg"}
    output: {"adefdefc", "adfgc"} .

    当时让我按着这个做:s1= "abbabbbbababdf",判断 b和bb是否是abbabbbbababdf的substring, 如果能找到b,把b替换成def。如果能找到bb, 替换成dfg。返回所以可能的组合,如何不包含substring,就返回abbabbbbababdf。

    当时用dfs + memo做的,写的不太对。谁给写个正确的?多谢了啊 |

    感觉用 backtracking + trie 做好一些

    http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=313373&extra=page%3D1%26filter%3Dsortid%26sortid%3D311%26searchoption%5B3086%5D%5Bvalue%5D%3D8%26searchoption%5B3086%5D%5Btype%5D%3Dradio%26searchoption%5B3046%5D%5Bvalue%5D%3D6%26searchoption%5B3046%5D%5Btype%5D%3Dradio%26sortid%3D311


    | round1: 给出一组数字,找出其中一个结果能组成三角形
    round2: sy[stem] desing: top N exception
    round3: 吃饭,全程中文聊天
    round4: host manager, 纯聊天 最有意思的项目,最大的挑战,accomplishment 之类的
    round5: tech communication, 如果项目组里面来了一个新成员,向他介绍整个项目.
    round6: 1 类似找island个数, 2 binary tree, 每次只能移除leaves,最后返回结果List<List<Integer>> |


    onsite:
    1: Go through my resume(白人SRE经理,问的很细),为啥跳槽,为啥转专业。
    2:第一问 leetcode 236 lowest common ancestor of binary tree。 第二问 给你一串字符串都是数字(0-9) 和target value, 你可以在中间任意插入 + - * /, 问你能否得到target value.
    3: 吃饭轮,和校友聊天,问了下下午面试侧重方向。
    4:Sy[stem] design top K exception
    5: Project Deep dive. Introduce your most challenging project. 这个人做后端的,我更他扯前端。(感觉他前端就懂一些javascript). 最后他顺便问了些how do you handle conflict in the team.
    6: 第一问Get top K closest value to the target value in binary search tree. 第二问 两个linklist是否有交叉。
    总结: 他家面试算法轮一轮要2道题。 Behavior 轮一定要聊 leadership,怎么带领team完成项。System design,不管对方怎么challenge,你都不能推翻自己先前的设计。

    相关文章

      网友评论

          本文标题:铃音 - 昂赛汇总

          本文链接:https://www.haomeiwen.com/subject/jrljhftx.html