网易年薪40W架构师面试题,欢迎自测!

一个月前被拉进了一个微信群,名字叫《明日都是大佬》,群里有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点准时直播

直播:请大家扫码预约,还可参与内部推荐,加入高薪跳槽群!

立即扫码预约

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode257. 二叉树的所有路径(java递归详解)

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

leetcode617. 合并二叉树

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)

前言权限管控对于一个系统来说是非常重要的,最熟悉不过的是菜单权限和数据权限,上一节通过Jwt实现了认证,接下来用它实现接口权限的验证,为什么不是菜单权限呢?对于前后端分离而言,称其为接口权限感觉比较符…

.NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记

目录什么是软件架构软件架构的基本思路单体向分布式演进、云原生、技术中台1.1 什么是软件架构1.1.1 什么是架构?Software architecture {Elements, Forms, Rationale/Constraints}元素、形式/模式、基本原理和限制为什么需要软件架构?软件架构的终极目…

leetcode530. 二叉搜索树的最小绝对差

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

再分享 5 个 vs 调试技巧

前言 之前在《5 个非常实用的 vs 调试技巧》和《继续分享 5 个实用的 vs 调试技巧》中分享了 10 个我认为非常值得了解的 vs 调试技巧,本周继续分享 5 个很实用的调试技巧。1. 显示下一条语句 在调试时,遇到断点中断后,为了更加清楚的了解程…

leetcode501. 二叉搜索树中的众数

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

网络知识 | 《图解HTTP》读书笔记(上)

【网络知识】| 作者 / Edison Zhou这是EdisonTalk的第293篇原创内容作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读《图解HTTP》一书的读书笔记,希望对你有所帮助&#…

leetcode292周赛--6057. 统计值等于子树平均值的节点数

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

C# 中 System.Range 结构体

翻译自 John Demetriou 2020年4月6日 的文章 《C# 8 Is Introducing Ranges》我们之前讨论过的 C# 中的一个特性 System.Index 结构体,与另一特性 System.Range 结构体 是携手并进的。在 C# 8.0 之前,没有访问集合中任意部分的范围或切片的语法。开发人员…

leetcode292周赛--6056. 字符串中最大的 3 位相同数字

一:题目 二:上码 class Solution { public:string largestGoodInteger(string num) {int slowIndex 0;int count 0;vector<int> ans;for (int fastIndex 1; fastIndex < num.size(); fastIndex) {if (num[fastIndex] ! num[slowIndex]) {slowIndex;} else {//相等…

GDB 调试 .NET 程序实录 - .NET 调用 .so 出现问题怎么解决

注&#xff1a;本文重要信息使用 *** 屏蔽关键字。最近国庆前&#xff0c;项目碰到一个很麻烦的问题&#xff0c;这个问题让我们加班到凌晨三点。大概背景&#xff1a;客户给了一些 C语言 写的 SDK 库&#xff0c;这些库打包成 .so 文件&#xff0c;然后我们使用 C# 调用这些库…

leetcode236. 二叉树的最近公共祖先(java递归)

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ class Solution {/**思路:1.后序遍历 从下往上遍历 找到目标结点后然后做逻辑判断处理1…

WPF MVVM 弹框之等待框

WPF MVVM 弹框之等待框目录一、效果二、弹框主体改造三、等待动画用户控件四、弹窗 ViewModel 和帮助类的改造五、使用方法和代码地址独立观察员 2020年10月13日之前写过一篇《WPF MVVM 模式下的弹窗》&#xff0c;里面实现了确认框和消息框&#xff0c;经过一段时间的演化&…

设计一个具有等待队列的连接池

说到连接池相关很多人都使用过&#xff0c;常见的有数据连接池&#xff0c;HttpClient连接池等。连接池的作用是保持一定量的连接让交互过程复用这些连接&#xff0c;从而大大节省连接创建过程或过多的损耗。在连接池策略中往往当池没有连接的情况都会抛出异常告诉使用者资源无…

leetcode701. 二叉搜索树中的插入操作

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

你不该错过的2020中国开源年报,填开源开发者问卷,成为国内开源的见证者

点击上方“开源社”关注我们| 作者&#xff1a;王伟| 编辑&#xff1a;黄欣宜| 设计&#xff1a;冯艺怡| 责编&#xff1a;王玥敏卷首语一年一度的中国开源年报再度启动&#xff5e;中国开源年报由开源社发起。旨在从多种维度&#xff0c;多种方式&#xff0c;多种协作来呈现国…

leetcode450. 删除二叉搜索树中的节点(java详解版)

一:题目 二:上码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

.NET Core使用FluentEmail发送邮件

前言在实际的项目开发中&#xff0c;我们会遇到许多需要通过程序发送邮件的场景&#xff0c;比如异常报警、消息、进度通知等等。一般情况下我们使用原生的SmtpClient类库居多&#xff0c;它能满足我们绝大多数场景。但是使用起来不够简洁&#xff0c;许多场景需要我们自行封装…

进击吧! Blazor !第四期 组件开发

Blazor 是一个 Web UI 框架&#xff0c;可通过 WebAssembly 在任意浏览器中运行 .Net 。Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程&#xff0c;它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术&#xff0c;但它使用 C&#xff03;语言和 Razor 语法代替 JavaScrip…