一个月前被拉进了一个微信群,名字叫《明日都是大佬》,群里有20多个人,都是正在跳槽的,目标是年薪30w!投简历、笔试、面试后都相互分享,互通有无你懂的。拉我进群是帮忙解答一些难题,很多题目还是蛮有意思的,近期计划整理下然后给大家分享,今天先来2道题。
进群不到一个月,2/3的人都已经拿到心仪的offer!
网易-地图寻址
网易游戏后端.NET Core开发岗面试里面,有个很有趣的问题是游戏地图寻址,问题大致描述如下(非原题):
下面是一个游戏地图抽象,箭头代表可以前进的方向,数字代表距离。如果玩家要从位置A移动到到位置E,用穷举法算出的最短距离和路径是多少?用贪心算法呢?二者该如何选择?
穷举法:最短路径A-C-B-E,距离是28
贪心算法:最短路径A-C-F-E,距离是30
穷举法只是用在结果集较少的情况下,通过罗列全部的结果得到最优解,而贪心算法(寻址的时候还有个专门的名字叫Dijkstra),是利用局部最优解最终拼装得到全局的结果,有可能不是最好结果(如本题),但能在大数据标本下,能获得的相对优秀解的一种算法。
解题详细过程和相关知识点,可以在文章底部获取。
顺丰-配送凑单
顺丰快递在高级开发岗位的笔试题里面有这么个问题:
假设一台卡车可以装载100立方米的货物,然后货物信息如下,如何搭配才能让卡车装下最大重量的货物(编码实现)?如果再限制总重量不能得超过20吨,结果如何?
货物清单:
货物A: 3立方米 0.4吨
货物B: 5立方米 0.7吨
货物C: 7立方米 1.0吨
货物D: 11立方米 1.7吨
货物E: 13立方米 2.2吨
这题说答案没意思,因为思路才是考核的地方。首先肯定不能穷举,累死都算不出来,肯定得有个算法完成。下面来一波思路分析:
1
卡车能装下,也就是物品总体积不能超过100立方米。
2
重量最大,也就是是找单位体积重量最大的,发现货物越大,平均重量越大,所以优先体积大的。
3
体积大的并不能充分填满空间,再去填充体积小的,这是贪婪算法的实现,但不一定得到最优解,在总空间固定的情况下,该如何获取最佳结果呢?动态规划!
动态规划:动态规划则是从底部开始,解决小的问题同时把它们合并形成大问题的一个完整解决方案。
4
动态规划的思路是分别从货物A找出最优解,加入货物B后的最优解,加入货物C后的最优解,加入货物D后的最优解,加入货物E后的最优解,甚至还可以有更多的货物都可以的
解题的代码和实现过程,可以在文章底部获取。
数据结构与算法
上面选的2个案例都是典型的数据结构算法题,类似的还有腾讯面试中对Redis-zSET跳跃表原理,携程研究院面试中最长公共子串查找等。基本上月薪到25k的面试题中,都有一道算法题的。一般的应用型开发,数据结构和算法都已经被泛化封装了,开发者也接触不到,然而到一定高度了,会遇到很多现实性的算法问题,如上面列举的案例,确实需要有对应的技术储备才行。
针对大厂面试真题的研讨,我准备开个直播进行分享(方便画图和撸码)!首期讲解这几个算法题的解题思路、具体实现、相关技术点等等,我也会分享自己的大厂面试经验。14号晚上8点开始,扫描下图二维码进群一起交流学习。
【大厂面试分享持续开展欢迎参与内部推荐】
补充说明:
很多小伙伴儿关注《明日都是大佬》,近期关注跳槽,乐意分享笔/面试题和经验心得的,可以加我微信沟通下,筛选后才能进群。贵在精而不在多,也避免有心人捣乱,筛选较严勿怪!
主题:大厂面试真题研讨会
时间:10月14日晚8点准时直播
直播:请大家扫码预约,还可参与内部推荐,加入高薪跳槽群!
立即扫码预约