目录
背景介绍
什么是华为OD?
OD现状
OD趋势
华为OD机考刷题攻略
1、刷题资料:投递岗位通过筛选后提供
2、注意事项:
真题代码目录
背景介绍
经济下行的这几年,每个人都感同身受,如何让自己在芸芸众生中脱颖而出?我想你需要这样一份华为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,保持监控程序不断开。
真题代码目录
2023届校园招聘华为机试指南
最远足迹(附python和JAVA代码实现)
VLAN资源池(附Python和Java实现代码)
字符串统计(全量和占用字符集)(附Python、Java和C语言代码)
无重复字符的元素长度乘积的最大值(附Python、C++和Java代码)
非严格递增连续数字序列(附Python、Java和C++代码)
拼接URL(附Java、C++和Python代码)
矩阵最大值(附Python、Java和C++代码)
报文解压缩(附Java和python代码)
滑动窗口最大值(附python、Java和C++代码)
最大嵌套括号深度(附Java、python和C++代码)
字符串消除(附Java、python和C++代码)
DNA序列(附Java和C++代码)
最多团队(附Python和Java代码)
猴子吃桃(附Java、C++和python代码)
停车场车辆统计/最少停车数(附Java、Python和C++代码)
绘图机器(附C++、Java和Python代码)
整数最小和(附Python和Java代码)
玩牌高手 (附Java、Python和C++代码)
判断一组不等式是否满足约束并输出最大差(附Python和C++代码)
最大N个数与最小N个数的和(附Java、C++和Python代码)
按照身高体重排队/运动会(附Java、Python和C++代码)
磁盘容量排序(附Python、Java和C++代码)
数组去重和排序(附Python和Java代码)
数组组成的最小数字(附Java和Python代码)
打印任务排序(附Java、Python和C++代码)
区间交集(附Java和Python代码)
叠积木 (附Java、Python和C++代码)
数组二叉树 /树根节点到最小的叶子节点的路径(附Python、Java和C++代码)
输出单向链表中倒数第k个结点(附Java、C++和Python代码实现)
最大岛屿体积(附Java和Python代码)
购买水果最便宜的方案(附Java和C++代码实现)
按照路径替换二叉树(附Java和C++代码实现)
分发糖果(附Java、Python和C++代码实现)
工单调度策略(附Java和C++代码)
硬件资源分配(附Python和Java代码)
天然货仓(附Java和C++代码)
机智的外卖员(附Java代码实现)
最小传输时延(附python、C++和JAVA代码实现)
密钥格式化(附Java和python代码)
最大化控制资源成本(附Java、C++和python代码)
数字游戏(附Java、C++和python代码)
天然蓄水库(附python、C语言和JAVA代码实现)
垃圾信息拦截(附C++和JAVA代码实现)
查找树中元素(附python、C++和JAVA代码实现)
服务中心的最佳位置(附python和JAVA代码实现)
快递投放问题(附Java和C++代码实现)
士兵过河II(附C语言、python和C++代码实现)
统一限载货物数最小值(附Java、C语言、C++和python代码)
字符串分割2(附Java和python代码)
最长连续子序列(附Java、python和C++代码)
阿里巴巴找黄金宝箱(I)(附Java和C++代码)
阿里巴巴找黄金宝箱(II)(附Java、python和C++代码)
阿里巴巴找黄金宝箱(III)(附Java和C++代码)
阿里巴巴找黄金宝箱(IV)(附Java、C++和python代码)
阿里巴巴找黄金宝箱(V)(附Java、C++和python代码)
字符串比较(附C++和JAVA代码实现)
跳格子2(附Java和python代码)
跳房子I(附Java和python代码)
跳房子II(附python、C++和JAVA代码实现)
座位调整(附python、C++和JAVA代码实现)
太阳能板最大面积(附python、C++和JAVA代码实现)
完全二叉树非叶子部分后序遍历(附python、C++和JAVA代码实现)
评论转换输出(附python、C++和JAVA代码实现)
数字反转打印(附python、C++和JAVA代码实现)
静态代码扫描服务(附python和JAVA代码实现)
星球争霸篮球赛(附python、C++和JAVA代码实现)
开心消消乐(附C++、python和JAVA代码实现)
最小调整顺序次数 / 特异性双端队列(附C++、python和JAVA代码实现)
微服务的集成测试(附C++、python和JAVA代码实现)
整理扑克牌(附Java、C++和python代码)
补种未成活胡杨(附Java、C++和python代码)
分班问题(附Java、C++和python代码)
路灯照明(附Java、C++和python代码)
最小传输时延(附Java、C++和python代码)
最小传输时延Ⅱ(附Java、C++和python代码)
模拟消息队列(附python、C++和JAVA代码实现)
矩阵元素的边界值(附Java、和python代码)
最小循环子数组(附Java、python和C++代码)
找车位(附Java、python和C++代码)
不开心的小朋友(附Java、python、C语言和C++代码)
解压报文(附Java、python和C++代码)
磁盘容量排序(附Java、C++和python代码)
分苹果(附Java、C++和python代码)
高矮个子排队(附Java、C++和python代码)
路灯照明问题(附Java、C++和python代码)
最多几个直角三角形(附Java、C++和python代码)
最多等和不相交连续子序列(附Java和C++代码)
优雅数组(附Java、python和C++代码)
计算疫情扩散时间(附Java、C++和python代码)
核酸检测人员安排(附Java和C++代码)
寻找核酸检测点(附Java和python代码)
信号发射和接收(附Java和python代码)
查找单入口空闲区域(附Java和python代码)
GPU算力问题(附python和JAVA代码实现)
任务总执行时长(附python和JAVA代码实现)
优秀学员统计(附Java和python代码)
查找充电设备组合(附python、C++和JAVA代码实现)
最差产品奖(附python、C++和JAVA代码实现)
预订酒店(附Java、python和C++代码)
云短信平台优惠活动(附python、C++和JAVA代码实现)
快速开租建站(附python、C++和JAVA代码实现)
报文重排序(附python、C++和JAVA代码实现)
分奖金(附Java、C++和python代码)
欢乐的周末(附Java、python和C++代码)
找出重复代码(附Java、C++和python代码)
事件推送(附Java、C++和python代码)
数列描述(附Java和python代码)
判断一组不等式是否满足约束并输出最大差(附Java、C++和python代码)
幼儿园分班问题(附Java、C++和python代码)
最远足迹(附Java、python和C++代码实现)
分积木(附python、C++和JAVA代码实现)
代表团坐车(附python、C++和JAVA代码实现)
任务最优调度(附python和JAVA代码实现)
求最小步数/输出最小步数数量(附python、C++和JAVA代码实现)
矩阵中非1的元素个数(附Java和python代码)
计算堆栈中的剩余数字(附Java和python代码)
增强的strstr(附Java和C++代码)
矩阵扩散(附Java、C++和python代码)
喊7的次数重排(附python、C++和JAVA代码实现)
单词接龙(附python、C++和JAVA代码实现)
VLAN资源池(附Java、C++和python代码)
关联子串(附Java和python代码)
文件目录大小(附Java、C++和python代码)
五子棋迷(附Java、C++和python代码)
找车位(附Java和python代码)
需要打开多少监控器(附Java和C++代码)
选修课(附Java、C++和python代码)
最大花费金额/满足最大消费额度(附Java、C++和python代码)
支持优先级的队列(附Java、C语言和python代码)
最佳的出牌方法(附python、C++和JAVA代码实现)
流水线(附python、C++和JAVA代码实现)
勾股数元组(附python、C语言和JAVA代码实现)
分割数组的最大差值(附python、C++和JAVA代码实现)
书籍叠放(附python、C++和JAVA代码实现)
字符串划分(附JAVA和python代码实现)
字符串化繁为简(附python、C++和JAVA代码实现)
找出两个整数数组中同时出现的整数(附python和JAVA代码实现)
篮球比赛(附python、C++和JAVA代码实现)
战场索敌(附python、C++和JAVA代码实现)
计算误码率(附python和JAVA代码实现)
一种字符串压缩表示的解压(附python和JAVA代码实现)
宜居星球改造计划(附python、C++和JAVA代码实现)
数组拼接(附Java和python代码)
非严格递增连续数字序列(附Java、C++和python代码)
内存资源分配(附Java、C++和python代码)
简易内存池(附Java、C++和python代码)
目录删除(附Java、C++和python代码)
字符串摘要(附Java、C++和python代码)
信号塔传递信号(附Java和C++代码)
荒岛求生(附Java和python代码)
分月饼(附Java和C++代码)
字符串中最小的整数和(附Java、C++和python代码)
完美走位(附Java、C++和python代码)
新学校选址(附Java、C++和python代码)
数大雁(附python和JAVA代码实现)
恢复数字序列(附python和JAVA代码实现)
食堂供餐(附python、C++和JAVA代码实现)
找数字、找等值元素(附Java、C++和python代码)
服务失效判断(附python、C++和JAVA代码实现)
最大利润、贪心的商人(附Java、C++和python代码)
端口合并(附Java代码)
猜字谜(附Java、C++和python代码)
猜密码(附Java和Python代码)
最短木板长度(附Java、C++和Python代码)
日志首次上报最多积分(附Java、C++和python代码)
运维日志排序(附python、C++和JAVA代码实现)
打印机队列(附Java、C++和python代码)
对称美学(附Java、C++和python代码)
货币单位换算(附Java和python代码)
连续字符最大次数(附Java和C++代码)
模拟商场优惠打折(附python和JAVA代码实现)
统计射击比赛成绩(附Python、C语言和Java代码)
挑选字符串 最多提取子串数目(附Java和python代码)
最少面试官数(附Java和python代码)
荒岛逃生游戏(附Java代码)
字符串统计(附Java、C++和python代码)
最长的顺子(附Java、C++和python代码)
TLV解码(附Java、C++和python代码)
农场施肥(附Java、C++和python代码)
最大报酬(附Java、python和C++代码)
字符串加密(附Java、python和C++代码)
最多等和不相交连续子序列(附Java代码)
图谱新词挖掘1(附python、C++和JAVA代码实现)
处理器问题(附python、C++和JAVA代码实现)
最长的密码(附Java和python代码)
IPv4地址转换成整数(附Java、C++和python代码)
计算数组中心位置(附Java、C++和python代码)
真正的密码(附Java、C++和Python代码)
简单的自动曝光(附Python和Java代码)
通信误码(附Python、C++和Java代码)
获取最大软件版本号(附Python、C++和Java代码)
最多颜色的车辆(附Java和python代码)
等和子数组最小和(附Python、C++和Java代码)
字符串重新排列(附Java、C++和python代码)
箱子之字形摆放(附Java、C++和python代码)
租车骑绿岛(附Java、C++和python代码)
乘坐保密电梯(附Java、C++和python代码)
元素十进制最低位排序(附JAVA代码实现)
生日礼物(附python和JAVA代码实现)
数字涂色/最少颜色种数(附python和JAVA代码实现)
打印任务排序(附C++和python代码)
找终点(附C++、python和JAVA代码实现)
相同数字的积木游戏1 (附Java、Python和C++代码)
进制转换(附Java、C++和python代码)
字符串分割2(附JAVA和python代码实现)
第K长字符串/连续字母长度/输出连续出现次数第k多的字母的次数(附Java、C++和python代码)
求满足条件的最长子串的长度/字符统计及重排(附python和JAVA代码实现)
荒地建设电站 /区域发电量统计(附Python、Java和C++代码)
寻找重复字符/找出符合要求的字符串子串(附Java、C++和python代码)
两数之和绝对值最小(附Java和python代码)
求符合要求的结对方式(附Java代码)
数字加减游戏(附Python、C语言和Java代码)
绝对值最小值(附C++、python和JAVA代码实现)
查找众数及中位数(附JAVA、C++和python代码实现)
计算汽水瓶数目(附Java和C++代码)
计算最大乘积(附Java、C++和python代码)
密室逃生游戏(附C++、python和JAVA代码实现)
单向链表中间节点(附Python和Java代码)
最大平分数组(附Java、C++和python代码)
从多个数组中按顺序取出固定长度的内容组成新数组(附C++、python和JAVA代码实现)
删除最少字符/删除字符串中出现次数最少的字符(附Java、C++和python代码实现)
相同字母消除(附Java、C++和python代码)
全排列(附python、C++和JAVA代码实现)
找朋友(附Java、C++和python代码)
根据某条件聚类最少交换次数(附Java和python代码实现)
机器人活动区域(附Python、Java和C++代码)
判断字符串子序列(附JAVA和python代码实现)
服务器广播(附C++、python和JAVA代码实现)
明明的随机数(附Java、C++和python代码)
消消乐游戏(附C++、python和JAVA代码实现)
高效的任务规划 (附Java、C++和python代码)
TLV解析/输出信元的值(附Python、C++和Java代码)