微软面试真题+面试官改编 leetcode 思路 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
longSwordMan
V2EX    LeetCode

微软面试真题+面试官改编 leetcode 思路

  •  1
     
  •   longSwordMan 2020-06-16 13:21:57 +08:00 2256 次点击
    这是一个创建于 2009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文首发于本人在 Leetcode 微信讨论群的直播。

    前两年已入职微软,由于工作繁忙,升职,买房,结婚的压力一直在,因此之前一直在地里潜水,目前告一段落,发一些经验贴,回馈地里。众所周知,微软以及诸多其他大厂的面试算法题主要是以 leetcode 为素材的改编,已经做了三四年的面试官,现在发一面试真题以及我自己和同事作为面试官的改编思路,希望可以帮到大家。本贴会将大部分的 leetcode 原题过一遍,再附上面试真题的改写思路,尽量讲得傻瓜。我尽量保持每周两更+回复评论,看后续的反馈情况决定是否改变更新频率以及增减帖子的内容,每条评论回复都会看,也可以加微信交流:longswordMAN,注明 V2EX 的 id 即可。

    废话不多说,正题开始:

    我们先来看 leetcode 上第 1 号问题:Two Sum: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例: 给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]

    简单题,考的是哈希表,暴力两重循环必挂。现在网上的帖子都喜欢和你说 leetcode 第 XX 题 是高频题,其实都是懒人思维,属于新手的思维误区。真正高频的是一些特定的知识点,如果按这种“原题照搬”思维,题目稍微做一些变招,大概率是要马失前蹄。

    这里的真正的高频考点是数据结构哈希表,划重点:哈希表的应用面试必考,一定会以某种形式在题目的某一部出现,以后还会讲到哈希表和二叉树,哈希表和二位数组等其他数据结构结合的变招。

    面试官改编思路:

    1.不同的运算规则,可以是乘除法,可以发明一个运算规则。 真题: 给定一个整数数组和一个目标值,找出数组中乘积为目标值的两个数。

    示例: 给定 nums = [2, 7, 11, 15], target = 14 因为 nums[0] * nums[1] = 2 * 7 = 14 所以返回 [0, 1] 其实换汤不换药,乘除法注意考虑边界情况即可(除以零),如果面试官自己发明的运算法:比如运算符:bla 的规则是: X 'bla' Y = X*Y - X -Y 。 同样的,查表规则改一下而已,换汤不换药,注意考虑边界情况 。

    2.换一个数据结构,看面试者是否能够利用规则,在时间复杂度上进一步优化。真题: 给定一个有序整数数组和一个目标值,找出数组中和为目标值的两个数。

    示例: 给定 nums = [2, 7, 11, 15], target = 13 因为 nums[0] + nums[2] = 13 所以返回 [0, 2] 当然有序数组也可以改成二叉树等其他数据结构,或者是一些具备某特性的数据结构。有序数组的话,注意用二分查找,可以把时间复杂度降到 O ( logn )

    3.变成多数之和,比如 3 sum 。这样的改写容易真题: 给定一个有序整数数组和一个目标值,找出数组和为目标值的三个数。

    示例: 给定 nums = [2, 7, 11, 15], target = 20 因为 nums[0] + nums[1] + nums[2] = 2 + 7 + 11 = 20 所以返回 [0, 1, 2]

    思路类似,查两次表,但注意排除第一个数,比如 2+2+2 这种一个数重复用多次的情况。 当然这都是容易的,如果三个数,再结合第 1 条变化,查表次数仍然是两次,但不要被复杂的运算搞晕,然后注意边界条件即可。

    1 条回复    2020-06-24 13:15:32 +08:00
    iCineon
        1
    iCineon  
       2020-06-24 13:15:32 +08:00
    LZ 想问下,学历和工作经历都很普通,有机会去面试嘛
    我是 iOS 开发,个人作品 https://apps.apple.com/cn/app/id1213960468
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2351 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:50 PVG 23:50 LAX 07:50 JFK 10:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86