• 微软hiring event面经5/56/18 2022


    【 5/17 HE,题都做出来了,却挂了,为何呢?】
    第一轮,三哥 Senior Engineer ,BQ 了一会,然后一道coding, 两个数组,返回差值最接近0的pair,最后反bq了一会
    第二轮,国人 EM, 直接做题,之字形遍历树,药灵散,秒了后,过八股文,过程/线程,stack/heap之类,最后反bq了一会
    第三轮,好像是中东人,EM, 比较凶,上来BQ 了一会,出了道题,二叉树从左右看, 要救救,秒了后,
    //todo1 又出了道设计题,设计分布式数据库,这个有点大,对方也很凶,很冷,互动不是很好,被对方叫停,草草结束,最后反bq了一会
    第四轮,非洲姐姐,EM, 上来BQ了20分钟,居然出了一样的题,之字形遍历树,秒了,然后聊天反bq, 感觉还挺愉快。

    【连续面巨硬4次VO,挂经,太惨了。求大米,接着面】
    第二次VO经历
    第一轮: 国人大妈马工,结果问了100% BQ,人准备了一个list, 一个个问,问得我头皮发麻,反正能答的上,都扯了几句。很惊讶找一个国人工程师来面纯BQ。
    第二轮: 美国大爷马工,又是纯BQ,聊得还算愉快。
    //todo2 第三轮: 两个马内基一起面,时长一个半小时,先是面了OOD,用n-tier arch 写一个bookstore,可以添加书,查找书。

    class Node
    {
        int key;
        Node left, right;
    
        public Node(int item)
        {
            key = item;
            left = right = null;
        }
    }

    //todo3 然后面了一个系统设计,不是常规的,让我讲自己的项目,然后画架构图,讨论瓶颈,scale, tradeoff之类,感觉比现场设计一个系统要简单点。两道题感觉答得还凑合吧。

    kafka-consumer

    第四轮:高级经理,面了30分钟BQ大概就结束了。这是约在第二天面的。
    第三次VO经历
    第一轮:小美经理,聊了BQ,之前项目,对方语气一般,我讲得不是太顺畅。然后出了一道原题,加油站,药散四,贪心在我看来最tricky, 很难想,现场没解出来。
    第二轮: 三哥经理,先聊BQ,态度不好,一直怀疑的。然后来了个设计,设计饭店订位系统,我设计了DB, 写了API, 花了图,讨论一下基本flow,结束了。
    //todo4第三轮: 某拉美经理,简短的聊了BQ,然后SD, 设计一个Notification System。基于前两场感觉已经挂了,这一场放开面了,思路还活跃些了,好几个点,对方说很好,是他要的。
    看题2://todo5第四轮:老美高级经理,BQ 了一会,出了道OOD,给一个图片,上面几种颜色的模块,然后要把其中一种挪出来,类似华容道的游戏。这题不好做,要建模,还得设计算法,我没能写完。
    第四次VO经历
    第一轮:美国白妞经理,迟到了很久,然后匆匆出了道链表的题,让删除值为空的节点
    //todo6 第二轮:老中上来中文,全程中文,第一次用中文面试。中文BQ+一道环形数组让找最短的包含全部颜色的子数组,滑动窗口可解

    不就是for index, window 长度也for从1到大。有啥高大上的滑动窗口,整得那么高级……https://stackoverflow.com/questions/2459653/how-to-find-smallest-substring-which-contains-all-characters-from-a-given-string
    第三轮:三哥经理,先BQ,然后出了道coding题,让处理stream,买卖股票的order request,需求挺绕的,要buy,之前得有比现在价格低的SELL,反之亦然,还要处理部分order。没有写完,对方提示了可以用heap,priority queue
    //重点1 todo7 第四轮: 三哥经理,让设计一个浏览器插件,非常规设计题,可以下载网页中出现的文件,对方很傲气,我写了几个eventhandler, 谈了谈思路。

    browser, cache, file, user的ood

    【微软 6/16 HE】
    5 月初 recruiter reach out,之后做了 OA 就约到了今天的 HE,一共四轮,大概流程都是自我介绍 + 问简历/简单BQ + coding/SD + QnA
    //todo8 1. Principal architect SD 轮,问的是 cloud file design,纯聊没有用 coderpad,简单说了 requirements 之后主要问怎么 handle consistency 和文件加密。加密的部分我也不太清楚他要问什么,我也不是很了解,答得不是太好。

    主从数据库,主数据库存mata data。加密算法有三种,IDEA 算法、RSA算法、AES算法,加密强度来讲,AES算法加密强度最高。
    2. Senior manager coding 轮,一道没有具体描述信息的题,就叫 remove duplicates from unsorted binary tree,clarify 问题的所有回答都是自己看着办,code 写出来了但有点懵。
    //todo9 3. Manager coding 轮,看到我简历上有 Java,就先问了什么是 polymorphism,什么是 interface, coding 是冗长的一道题,看明白之后就是 binary search 返回第一个 >= target 的值,写完 test 了好多种 case,都过了。

    https://www.geeksforgeeks.org/smallest-number-in-bst-which-is-greater-than-or-equal-to-n/
    4. IC coding 轮,第一个问题是给一组 01 sequence,判断相邻的两个 seq 是否最多只有一位 digit 不同,比如 [01, 11, 10] 就是 True,[01, 10, 11] 就是 False。感觉面试的人很着急,总是在打断我说话 pus‍‌‍‌‍‌‍‍‌‍‌‍‌‍‌‍‌‍h 我赶紧写 code,说接下来还有 follow up,这个写最简单的 code 就行。写完之后第二个问题,类似 LC 89,说清楚思路就行,最后剩了十几分钟也没有写代码。
    求加米看面经!!谢谢!

    【微软6/7 HE】
    微软6/7 Hiring Event Azure Data Service组
    第一轮Meeting room 2
    第二轮Path sum 3
    第三轮Valid Parentheses
    //todo10 第四轮System Design 给Data Warehouse和Cache 设计如何尽量最小化Data Warehouse的查询

    分布式缓存
    感觉面的很好,但是收到拒信
    根据HR的描述 6/14还有一场同样组的Hiring Event造福大家 求米

    【巨婴HE面经】
    round1: 好像是mgr自己出的题,很简单就是两个linkedlist,找共同存在的点,然后bq了很久,感觉很注重bq,45min结束了又继续问了好几个bq
    读题2 round2: 蠡口 遥遥乌乌dp跟换硬币很像
    round3: 翻转链表2
    //todo11 round4:sd + ood类似设计一个权限管理系统,有user role和permission,有一个映射关系,设计assign, revoke和get permission的接口,然后要mock db testing类似

    每个实体都加上id就行了

    【巨硬 VO Failed 】
    网上海投,一轮电话screening,四轮on-site interview,最后failed。
    1. 电话screening:设计memory cache
    on-site。
    1. 给一组坐标点,找到一个中间点在任意两个点,这两个点是整数。
    2. 给一系列objects,返回平均值在最后给定的时间段。
    3. 蠡口 三无林变种
    4. 给一个树计算子树个数是复数。‍‌‍‌‍‌‍‍‌‍‌‍‌‍‌‍‌‍

    【巨硬HE 5/23】
    4轮都是azure大组下的面试官,每轮开场15分钟BQ
    读题3 第一轮印度小哥,力扣舞儿巴,followup要求get方法O1
    第二轮印度大姐,简化版力扣散舞无,followup如果post重复tweet怎么处理
    第三轮白人小哥,没找到原题应该是他自己出的,输入一个list of transactions,每个transaction包含付款人和若干平摊人,输出每个人与其他所有人的欠款关系,输入输出全部自定义,面试官比较注重数据结构设计 traverse二叉树就行了
    第四轮白人HM,力扣妖戚,followup如果给一个字典,只能输出字典里有的单词

    【巨硬老年过经】
    //todo12 巨硬azure老年岗,组招,第一轮HM电话面,聊聊背景,问了一题类似于系统设计的题(关于如何解决hot partition的),然后问了一题很简单的算法(2sum),由于LZ不知道这一轮要考题,以为是瞎聊,用手机接的,code写不了,描述了一下,很庆幸给过了。一周后开始vo,一共四轮,可惜现在只记得三轮。。。每一轮面试都是相似的套路,即先问算法题,然后follow up逐渐变成系统设计题 调整key
     1. 似似无,算法考完后问如果input是stream怎么办,stream很多内存放不下怎么办;如果input很大,只能放在文件里怎么办;设计一个系统,尽可能保证分布处理时中间结果不丢失(发生故障等情况,只说duplication还不满足)
    读题4 2.路三路,follow up多线程怎么办
    读题5 3.起灵路,follow up如果你‍‌‍‌‍‌‍‍‌‍‌‍‌‍‌‍‌‍是黑客想攻击这个系统,怎么去获取mapping?作为系统设计者怎么保护mapping不被轻易获取?

    【巨硬HE 5/17】
    第一位是个热情的白人小哥,问题是给一个代表高度的2d array,从给定的一个点出发,采用最速上升法,返回最后停留的点。follow up是如何让compare options的次数更少。一路比较,check边界 if safe就行了。
    第二位是和白人小哥一个组的白人大叔,问题是字符串最长回文子序列(刷题网 五)。
    第三位是另一个组的三哥,印象不太好,不仅迟到了而且问bq也问了二十多分钟。写题目的时候也经常打断我然后反复问。一些很明显的点也‍‌‍‌‍‌‍‍‌‍‌‍‌‍‌‍‌‍会问很久才能get我的意思,结果最后没写完。题目是经典的LRU。
    第四位是三姐组长,让实现sToi()和iTos()。这一轮比较简单,十五分钟写完之后就愉快聊天。

    【微软 05-12 Hiring Event】
    //todo13 类似ODD,但又不完全一样, design a file system that can distribute millions of files to different nodes, 问题给的非常模糊,然后一直问我要加什么feature来提高用户体验, 问的太宽泛,所以就一直和他交流, narrow down他想要的feature, 比如说查重, monitor file change之类的

    按大规模scale的一些措施去回答

    【巨婴 HE】
    //todo14 第三轮: 自己出的题目.一个API可以用来把String 保存到cache,一个API用来读出cache的String,并且返回。 要求优化时间和空间。比如说刚开始input的 string很多。 说实话我没明白他要我干什么。 他描述完,我当SD做的。 他又说没有DB和Queue之类的。只有内存。  那我就说,把所有string都存到list里面,从list再取。  他说需要优化空间。 我直接讲,可以用Trie,不要存储重复的string。 最后还说让我实现这两个API。  我胡乱写了。自始至终没弄明白他想要什么。。 这轮应该是跪了。
    String saved to cache 那个是不是可以LRU那样解,链表+dict/hashmap
    不是一样的题。 就是实现最优时间空间的存取字符串。 两个API
    一看就是天竺人自己瞎jb编的题目,这轮被坑了。

    【微硬/巨软虚拟现场】
    1 一个grid,0为空,1表示生芒果,2熟芒果。每一分钟,每个熟芒果4方向相邻的生芒果都会变熟。问所有芒果都是熟了的最少时间。无法做到就return -1
    2 给一个BST 的preorder 遍历数组,要求构建出BST,返回root。要求O(n)
    3 写一个你认为的最快的排序算法。问了平均和最坏复杂度
    4 设计一个queue service,基本操作类似数据结构queue,但应该要尽量可扩展。

    【巨硬四月昂赛】
    Round1:
    BQ: 怎么应对Ambiguity
    //todo15 漆傘变种,矩阵上下左右相邻的格子置零
    Round2:
    BQ:
    Identified an improvement
    Step up to take on something you were not asked to
    Design: 短网址
    //重点2 todo16 OOD 设计Locker, 可以分配离用户最近, Size合适的Locker

    (最近的储物柜问题)找到离包裹目的地最近的储物柜位置。检查 Location 的 Locker 空间体积是否大于或等于 Package 体积(我们只需要检查体积,因为第 3 步限制了尺寸)。如果不是,则查找第二个最近的储物柜位置,依此类推。
    Round3:
    BQ: Project didn't finish
    Coding:

    吾钯
    依漆迩
    Round4:
    纯BQ:
    WFH的挑战
    Proactively identified an issue before it went live

    【巨硬劝退HE】
    第一轮:15min 介绍聊了聊项目 + 刷题网 迩舞伞 变种
    Follow up:不允许sort + input stream large问如何优化
    ————————————
    第二轮:面试官叫Ved Ratn Dixit,我先喷为敬
    没有寒暄没有介绍,直接进codility
    //重点3 todo17一上来给了个巨简略的问题,搞一个cache的interface里面有get,set和delete,加起来就五行
    我问有什么要求,他说没有,或者给两个例子,他也说没有。我大概讲了下思路和可能的edge case,没理我。得了那就先写一版
    写完就开始被疯狂挑刺,比如有key不存在怎么办,有duplicate key怎么办
    我说那我们处理一下,他说你应该在实现之前就问问题,我说我问了你没回答。
    他就一口咬定我没问,我说我肯定问了。然后他又跟我扯现实里你这么做肯定不行,直接实现然后返工没有效率,我说大哥你现实里没有design doc和review吗?
    拉扯了30min全程压着火对他的否定逐一反驳,最后我说那现在这样我们把这个弄完,回到duplicate key上
    之前用hashmap存的所以duplicate key会被直接覆盖掉,如果想存储duplicate key的话我可以另加一个queue来存
    没反应,我又重复了一遍还是没理我,就直接写了
    写完了之后他来了一句我让你存了么,我TM当时直接?????
    我说那你想怎么办,他说之前覆盖掉就行。当时差点就直接贴脸开骂了,存心找茬么。
    ————————————
    第三轮:人很好上来给我讲了一堆组的情况,项目和目标用户群体什么的 ,平复了下我上一轮炸裂的心态
    聊了15min + 刷题网 衣灵伞
    Follow up:如何用一个queue解决,说了下思路就结束了
    ————————————
    第四轮:HM轮,解决一个区域状态更新的问题,偏设计,连续的Follow up包括如何存储、如何保证一致性
    最后大概写了个差不多的实现代码就结束了

    【巨婴HE新鲜挂经】
    昨天巨婴hiring event. 还没睡醒就起来答题。。 第一轮结束我就知道挂了。
    第一轮前半段BQ,我说太多,大约说了15分钟,最后就25分钟左右做题,看到题的时候还比较放松,感觉靠谱了。。。  就是一个topological sort的问题, 题目是游戏里一些skill必须在其他skill都获得之后才能被开启。 刷题网二姨玲。 唯一区别是不要求全部打印出来,而是打印第一个走到底的skill。 我写完之后运行出来结果不对,直接懵逼。脑袋懵懵的就结束了。 followup问你有哪些test case没有被想到, 其实就是看有没有loop。
    第二轮开始心不在焉,要做的是一个tinyURL的encode和decode 刷题网雾散舞。 我用刷题网的第五种方法做的。 followup 解决colliision问题(需要手写base64, 我没时间写了)
    //重点4 todo19第三轮, 外部排序, 很小的memory的情况下排序一个大的文件。 不要求运行。
    //第四轮,三姐自己都说不明白, 她给的题很短: “你是一个聚会planner, 有N个group, 每个group有10个人。 让你写出来一个takeEvent和listEvents”
    我问了一些问题,
    1. group还有每组的人数和event什么关系,她嘟囔了半天最后才说10个人这个条件一点用没有,一个group只能负责一个event就行
    2. 每个event有没有开始结束时间,三姐自己都懵了,她说那就有吧。
    3. 她开始也跟我说listEvents是把当天的event都打印出来。
    所以我用了line sweep(经典上下车问题)去查看当时是不是已经有超过N个event了去决定是不是去take这个event。
    写到listEvent的时候,她来了一句,listEvent要打印出来每个group被分配到的events。 不是每天了。。 所以每个group是有区别的。。*(^*&%*&...
    前三轮状态不在线,脑袋懵懵的,我认了,第四轮真不怨我。。。  另外小弟论坛新人正在刷题面试中,过路的大哥大姐能施舍的点大米,我就可以看到面经了。

    todo 20:第四轮白人小哥,上来也是聊Project BQ,然后做题System desgin。不过这不是传统的那种你画我猜的那种system design,而是他抛出一个general的问题:假如client server send message的时候会有message lost,这个时候应该怎么办?retry. 那么retry又带来了什么新的问题?possibily duplicate transaction。那应该怎么avoid?messageId。他觉得可以,让我写一段代码。我:???然后我硬着头皮写了个像leetcode那样写了个client send message还有 server process message的,用的hashmap。他问我有啥问题,我说can grow infinite,然后是in memory,data lost没法recover,应该放key value store的DB里比如DDB,这样还能support distributed server message processing。他说可以,我是他面试里面第一个都答出来的。我还是挺惊讶的。

    leetcode原题留散而。散巴铃,多一个search operation。
    rand(p, q),可以随机生成[p, q]之间的整数,让你写一个myrand(m, n),要求能够生成n个[1, m]之间的整数,每个整数必须不同。就是结果放到一个set中,然后去重就行了。

  • 相关阅读:
    oracle调用存储过程和函数返回结果集
    怎样让Oracle的存储过程返回结果集
    Java 调用存储过程 返回结果集
    oracle多表关联删除数据表记录方法
    ORACLE多表关联UPDATE 语句
    Oracle--用户管理与权限分配
    java代码开启关闭线程(nginx)
    netty实现websocket客户端(附:测试服务端代码)
    netty同时实现http与socket
    Oracle-控制语句
  • 原文地址:https://www.cnblogs.com/immiao0319/p/16389830.html
Copyright © 2020-2023  润新知