目录
背景介绍
经济下行的这几年,每个人都感同身受,如何让自己在芸芸众生中脱颖而出?我想你需要这样一份华为OD机试宝典,历史题目一网打尽。
本专栏的每篇文章结构分为三个部分:题目描述、思路解析和代码实现。部分题目会做知识的一个拓展,包括相似题目、涉及的数据结构相关知识。
思路解析部分提供多种解题思路。
代码实现部分基本上会用python、Java和C++三种最常用的编程语言来实现,满足大部分小伙伴的需求。
什么是华为OD?
**华为OD是一种新的用工方式,其全称为Outsourcing Dispatch(外包派遣)。**这种方式是由华为与外部的人力资源服务公司如外企德科或科锐国际合作进行招聘。OD模式下,员工的劳动合同并非直接与华为签订,而是在这些第三方人力资源服务公司的名义下。这意味着OD员工的工作归属感可能不如传统华为员工强烈,但他们在薪酬待遇上通常会有所保障。
华为OD主要面向的是13级至17级的软件开发类岗位,包括但不限于前端开发、后端开发、软件测试、算法、大数据等领域。由于OD员工是与第三方人力资源服务公司签订的合同,因此他们的合同管理和福利待遇(如五险一金、考勤发薪)主要由这些公司负责。而华为则主要负责员工的职业发展和绩效评估等方面的工作。
华为OD模式虽然被视为一种高级外包形式,但它也提供了一种机会,即对于表现优秀的OD员工,华为会考虑将他们转化为正式编制内的员工。这表明华为在努力平衡灵活用人和长期发展的需要。
综上所述,华为OD的本质仍然是外包,但它提供了一定的稳定性和发展潜力,尤其是对那些有潜力的OD员工而言。
1)人力外包
签约方为外企德科/科锐国际(人力服务公司),劳动合同期为4年,试用期6个月。
2)员工关系
合同管理、五险一金、考勤发薪由外企德科/科锐国际负责;定级定薪、员工培训、工作安排、绩效评比和晋升等由华为负责。
3)工作关系
和正式员工一起在华为研究所办公,工作内容基本没有差异。
当然也见过有些人进来做OD吐槽不用怎么写代码学不到东西的,这个其实跟你当时选择了什么部门什么团队有关系,部门和团队的项目定位决定了你的工作性质、学习资源和发展空间。
不存在核心非核心区别对待,主管和导师都是华为正式员工。
4)薪酬福利
薪资结构:
① 基本工资+绩效工资+年终奖(2-4个月,一般绩效A-4个月,B-2个月);
② D1-D5分别对应华为13-17级,参考范围10-40K;
③ 试用期内(6个月)工资不打折,按B绩效发绩效工资,转正时重新评绩效,一般分A、B、C三档(主要A或B,C概率较小),和正式员工分开评,半年评一次;
④ 五险一金基数按基本工资,公积金比例5%-12%,具体看base地。
⑤福利补贴:带薪年假、入职&年度免费体检、免费夜宵、班车/加班打车免费、下午茶、节假日礼品等。
5)工作时间
① 上班8:0-9:00弹性(根据地域不一样有稍许差别),午休12:00-14:00,下班17:30-18:30(上下班时间一般跟所在项目组走);
② 一般一二四属于补工时到晚上20:30左右,三五正常时间下班(确保工时平均每天够8h,工时不需补且无加班需要,自己灵活安排下班时间,重点看产出);
③ 周末双休,月末周六固定加班双倍工资,其他因业务需求指令性加班情况,可申请加班,按国家规定支付加班费。
OD现状
目前只开放软件研发岗位(含开发、测试、算法、大数据等),硬件岗位2022年起已停招,在职人数3W+,20年下半年-2022年底,转正人数已经超过3000人(入职人数和转正人数每月都是滚动变化的)。
从实际接触的部门情况来看,每个产品线严格来说每个部门的比例不尽相同,有些是在20%以下的,有些可以到50%,更高的能到80%以上(跟部门招聘要求、指标数量、OD基数等都有关)。
OD趋势
随着传统"项目外包"人员(如某软某通)无法进行华为工作级可信认证提交code,大批量被释放出华为项目;以及华为对OD招聘质量要求的提高。
同时外部经济环境持续不乐观,社招及校招HC收紧等因素,未来"招高质量OD转华为"会成为一种确定性的常态。
华为OD机考刷题攻略
1、刷题资料:投递岗位通过筛选后提供
2、注意事项:
1)机考3道题(2道easy,1道mid,100+100+200共400分,一般150分通过,不同部门要求会有所出入,考试时间2.5h);
2)注意编译环境的变化及语言选择,选自己熟悉的语言机考,机考语言一般要跟你应聘的岗位语言一致;
3)机考链接有效期一般为7天,收到机考邮件后,要7天内完成考试(否则有过期风险);
4)机考半年内只能考一次,如果不通过,需要等半年后才能再申请;
5)机考时禁止访问百度查询,会被判作弊成绩无效!如遇到原题,不可抄袭别人代码,重复率太高有风险;
6)请使用最新版chrome浏览器作答(72版本以上),考试过程中需开启摄像头、屏幕录制及监控,如监控异常可能会影响您的成绩,请按指引调试好设备后再开始答题;
7)支持本地IDE编码后复制粘贴至考试页面,不做跳出限制(本地IDE不要保留太多刷题时留的代码,系统监控会有判定作弊风险);
8)考试时允许使用草稿纸,请提前准备纸笔,考试过程中允许上厕所等短暂离开,但请控制离开时间;
9)考试期间如遇到断电、断网、死机等问题,可以关闭浏览器重新打开试卷链接继续做题;
10)遇到问题请及时与HR联系;
11)手机飞行模式打开WiFi,保持监控程序不断开。
真题代码目录
字符串统计(全量和占用字符集)(附Python、Java和C语言代码)
无重复字符的元素长度乘积的最大值(附Python、C++和Java代码)
非严格递增连续数字序列(附Python、Java和C++代码)
停车场车辆统计/最少停车数(附Java、Python和C++代码)
判断一组不等式是否满足约束并输出最大差(附Python和C++代码)
最大N个数与最小N个数的和(附Java、C++和Python代码)
按照身高体重排队/运动会(附Java、Python和C++代码)
数组二叉树 /树根节点到最小的叶子节点的路径(附Python、Java和C++代码)
输出单向链表中倒数第k个结点(附Java、C++和Python代码实现)
统一限载货物数最小值(附Java、C语言、C++和python代码)
阿里巴巴找黄金宝箱(II)(附Java、python和C++代码)
阿里巴巴找黄金宝箱(IV)(附Java、C++和python代码)
阿里巴巴找黄金宝箱(V)(附Java、C++和python代码)
太阳能板最大面积(附python、C++和JAVA代码实现)
完全二叉树非叶子部分后序遍历(附python、C++和JAVA代码实现)
最小调整顺序次数 / 特异性双端队列(附C++、python和JAVA代码实现)
微服务的集成测试(附C++、python和JAVA代码实现)
不开心的小朋友(附Java、python、C语言和C++代码)
查找充电设备组合(附python、C++和JAVA代码实现)
云短信平台优惠活动(附python、C++和JAVA代码实现)
判断一组不等式是否满足约束并输出最大差(附Java、C++和python代码)
求最小步数/输出最小步数数量(附python、C++和JAVA代码实现)
最大花费金额/满足最大消费额度(附Java、C++和python代码)
分割数组的最大差值(附python、C++和JAVA代码实现)
找出两个整数数组中同时出现的整数(附python和JAVA代码实现)
一种字符串压缩表示的解压(附python和JAVA代码实现)
宜居星球改造计划(附python、C++和JAVA代码实现)
非严格递增连续数字序列(附Java、C++和python代码)
字符串中最小的整数和(附Java、C++和python代码)
最大利润、贪心的商人(附Java、C++和python代码)
日志首次上报最多积分(附Java、C++和python代码)
挑选字符串 最多提取子串数目(附Java和python代码)
IPv4地址转换成整数(附Java、C++和python代码)
相同数字的积木游戏1 (附Java、Python和C++代码)
第K长字符串/连续字母长度/输出连续出现次数第k多的字母的次数(附Java、C++和python代码)
求满足条件的最长子串的长度/字符统计及重排(附python和JAVA代码实现)
荒地建设电站 /区域发电量统计(附Python、Java和C++代码)
寻找重复字符/找出符合要求的字符串子串(附Java、C++和python代码)
查找众数及中位数(附JAVA、C++和python代码实现)
从多个数组中按顺序取出固定长度的内容组成新数组(附C++、python和JAVA代码实现)
删除最少字符/删除字符串中出现次数最少的字符(附Java、C++和python代码实现)
根据某条件聚类最少交换次数(附Java和python代码实现)
TLV解析/输出信元的值(附Python、C++和Java代码)
报数游戏/约瑟夫环(附JAVA、C++和python代码实现)
快递运输/货车最大载货量(附Java、C语言、C++和python代码)
求整数的连续自然数之和的表达式(附Python、Java和C++代码)
找出经过特定点的路径长度(附Java、C语言、C++和python代码)
数组合并/从多个数组中按顺序取出固定长度的内容组成新数组(附python、C++和JAVA代码实现)
输出最多类型的个数/数据分类(附python、C语言和JAVA代码实现)
在字符串中找出连续最长的数字串(附python和JAVA代码实现)
判断两个IP是否属于同一子网(附Java、python和C++代码)
检查是否存在满足条件的数字组合(附Java和C++代码实现)
n*n数组中二进制的最大值(附Python、Java和C++代码)
水仙花数Ⅱ/水仙花拆分字符串(附Java和python代码)
字符串变换最小字符串(附JAVA、C++和python代码实现)
小朋友身高排序/寻找身高相近的小朋友(附Java、C++和python代码)
字符串反转/按索引范围翻转文章片段(附Python、C++和Java代码)
最小数量线段覆盖/区间交叠问题(附Python和Java代码)
数字字符串组合倒序(附python、C++和JAVA代码实现)
字符串筛选排序/字母所在字符串中的位置索引(附Python、C++和Java代码)