杂记——记录一次参加华为OD研发岗位的面试过程

流程

  • 一、在线机试
  • 二、性格测试
  • 三、技术一面
  • 四、技术二面
  • 五、技术三面
  • 六、资格面试
  • 七、综合面试

关于od,自己去论坛上面看吧,褒贬不一,自个儿衡量。

一、在线机试

1)在“牛客网”上完成三道题目,多是字符串和排列相关的题目,总分在150分以上即可通关(当然越高越好了)。
2)三道题目,按照简单(100分)、简单(100分)、中等(200分)的顺序排列,总体而言难度较小,but 容易遗漏某些特殊情况,从而影响用例通过率,比如空值判断。分值按照通过用例百分比计算,比如第三题总计20个测试用例,通过10个,得分200*(10/20) = 100分。
3)日常练习时不需要完成录入部分的编写、测试用例可以选择是否可见,but 机试时需要完成录入部分的编写,比如Scanner(Java)、测试用例不可见。
4)练习题目地址:https://www.nowcoder.com/ta/job-code-high

邮件如图所示:

二、性格测试

官方称作“综合测评”,其实就是“性格测试”。联系的先生强调说:“不要小觑这一关,有很多人在这上面失利”。提示几点:1)某些题目会重复出现,前后不要矛盾;2)主观选择就好,不要过多的考虑,但得积极向上;3)华为宣扬:狼性和战时氛围。

邮件如图所示:

三、技术一面

印象有些模糊,大概记得面试官挑选了简历上面令他感兴趣的点来询问 + 一些常规面试内容(感兴趣就向下挖) + 手撕代码(关于字符串)。

邮件如图所示:

四、技术二面

深挖,一个点展开就向下深挖,直到投降为止。

0)挑选一个项目展开
1)技术栈展开
2)学习和工作这些年来,在哪些领域有研究,挑来谈谈
3)重载与重写的区别,JVM如何实现
4)集合类,HashMap(如何解决hash冲突)
5)归并排序、DFS、BFS和贪心算法的思想
6)volatile和synchronized的区别、实现原理
7)lomada表达式
8)枚举是不是类,谈谈你对它的认知
9)设计模式
……
35Min,手撕代码《设计和实现售货机》,题目如下(题目本身难度偏下,但个人水平觉得时间仓促):

请设计一款自动售货机的进出货管理系统 VendingMachineSystem(),需实现以下功能:
 *  * •	VendingMachineSystem(int trayNum, int trayCapacity):设置该自动售货机上共有 trayNum 个商品轨道,每个商品轨道上最多可放置 trayCapacity 个商品。
 *  * o	每个轨道上只能放置同一品牌的商品;同一品牌的商品只能放置在一个轨道上;
 *  * o	对于已售空的轨道可以加入某一品牌的商品,即不一定是原品牌。
 *  * •	addProduct(int brandId, int[] productIdList):向系统中添加商品,品牌为 brandId ,商品编号为 productIdList ,从所在轨道的末端商品之后按数组 productIdList 下标升序依次放入。
 *  * o	售货机内已有该品牌的商品:若所在轨道剩余空间充足,则放入商品并返回 true ;否则不做任何操作并返回 false ;
 *  * o	售货机内没有该品牌商品:若售货机内有空轨道,且该轨道空间充足,则放入商品并返回 true ;否则不做任何操作并返回 false 。
 *  * •	buyProduct(int brandId, int num):购买品牌为 brandId 的 num 个商品。
 *  * o	若有足够的商品,则取该轨道上前 num 个商品并返回其商品编号列表;
 *  * o	若没有该品牌商品,或该商品数量不足 num 个,则不做任何操作并返回空数组 []。
 *  * •	queryProduct():按照品牌编号【升序】返回每个品牌的【首个】商品编号(忽略空轨道);若售货机为空,返回空数组 []。
 *  *
 *  * 示例 1:
 *  * VendingMachineSystem obj = new VendingMachineSystem(2, 5); // 设置自动售货机共有 2 个轨道,每个轨道上只能放 5 个商品
 *  * System.out.println(obj.addProduct(3, new int[]{3, 5, 4, 6, 2})); // 在售货机放置品牌编号为 3 的商品,按照下标升序依次放入,商品编号依次为 3、5、4、6、2,返回 true
 *  * System.out.println(obj.buyProduct(3, 3)); // 购买 3 个品牌编号为 3 的商品,被购买的商品编号依次为 3、5、4,返回所购商品编号列表 [3,5,4]
 *  * System.out.println(obj.queryProduct()); // 当前只有1个品牌商品,其首个商品编号为6,返回 [6]
 *  *
 *  * 示例 2:
 *  * VendingMachineSystem obj = new VendingMachineSystem(2, 5);
 *  * System.out.println(obj.addProduct(3, new int[]{3, 5, 4, 6, 2, 1})); //  false
 *  * System.out.println(obj.addProduct(3, new int[]{3, 5, 4, 6, 2}));//  true
 *  * System.out.println(obj.addProduct(1, new int[]{9}));//  true
 *  * System.out.println(obj.addProduct(2, new int[]{7}));//  false
 *  * System.out.println(obj.buyProduct(3, 3));//  3,5,4
 *  * System.out.println(obj.buyProduct(9, 3));//  空
 *  * System.out.println(obj.buyProduct(3, 3));//  空
 *  * System.out.println(obj.queryProduct());//  9,6
 *  * System.out.println(obj.addProduct(3, new int[]{10, 20, 13, 14}));//  false
 *  * System.out.println(obj.addProduct(3, new int[]{10, 20, 13}));;//  true
 *  * System.out.println(obj.buyProduct(3, 5));//  6,2,10,20,13
 *  * System.out.println(obj.addProduct(9, new int[]{5, 4}));//  true
 *  *
 *  * 提示:
 *  * 1 <= addProduct, buyProduct, queryProduct 总操作数 <= 1000
 *  * 1 <= trayNum <= 100
 *  * 1 <= trayCapacity <= 100
 *  * 1 <= brandId <= 200
 *  * 1 <= productIdList.length <= 100
 *  * 1 <= productIdList[i] <= 10^5
 *  * 1 <= num <= 100

邮件如图所示:

五、技术三面

一二面等级不一,会开启第三面
1)手撕代码:《中位数》,题目如下:

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,你可以假设 nums1 和 nums2 不会同时为空。
 *
 * 示例 1:
 * nums1 = [1, 3]
 * nums2 = [2]
 * 则中位数是 2.0
 *
 * 示例 2:
 * nums1 = [1, 2]
 * nums2 = [3, 4]
 * 则中位数是 (2 + 3)/2 = 2.5

2)自我介绍
3)项目展开
4)忘记了~

邮件如图所示:

六、资格面试

“资格面试”,也称作“HR面试”,会对个人、家庭有个简短的了解。小姐姐爱笑,氛围感觉挺轻松。

邮件如图所示:

七、综合面试

官方称作“综合面试”,其实就是最终关卡的“部门主管面试”,主管面相和蔼。

1)自我介绍
2)为什么想要离开
3)职业规划
4)目前为止遇见令你印象深刻的事情,如何解决的
5)项目展开:流程、作用和你自己所扮演的角色等
6)目前收入、期望money、为什么
7)你有什么想问我的吗?

邮件如图所示:

某些内容,回忆起来在补充,hh

若有疑问,相互交流~

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月8日
下一篇 2023年12月8日

相关推荐