zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

华为OD面经2022-8-9(持续更新)

2023-04-18 16:12:49 时间


一、机试(8-9)

1.扑克牌顺子

输入1:自己的手牌
输入2:已经打出去的牌
输出:对手牌上可能出现最长的顺子,不存在输出NO-NUM
附:2、大王、小王不构成顺子。且构成顺子最低五张牌

解题思路:
1.定义所有牌类型作为key;
2.定义当前牌局总牌map包含除2、大小王外所有牌型且每个牌型数量为4;
3.根据手牌和已打出去的牌扣减总牌map,剩下的就是对手牌;
4.根据key获取map中对应牌型的数量,大于0即可;
5.判断是否连续且>5,存在则放入结果集,不存在则输出NO-CHAIN;
6.输出结果集中最长连续顺子

本人第一次没注意最长,结果写了个输出最大的顺子耽误时间。。。

2.数组求值

输入1:数组长度
输入2:数组的每个元素
输入3:n
输出:数组最小n个元素和最大n个元素的总和。如果最大n个元素与最小n个元素又重叠则输出-1,如:[1,2],[2,9]

解题思路:
1,对数组去重排序
2.取数组头n个元素和尾n个元素,放入两个新数组
3.比对两个新数组元素是否有重复
4.输出新数组元素的和或者输出-1

这是唯一一个简单题,坑在于输入的测试用例千奇百怪,[],[“”],[“A”],n>arr.length

3.方阵求最远连线

输入1:方阵行数 H,方阵列数 L
输入2:方阵:F-女生,M-男生
F F M M F M F
F F M M M M F
F F M M F M F
F M M M M M F
输出:方阵里男生的最远连接线,包含横连接,竖连接,斜对角连接

解题思路:
1,遍历方阵,给每个M打上行列坐标放入两个集合HList,LList
2.遍历一个集合,根据角标获取另一个集合的坐标,统计同行最大值和同列最大值,比较取出最大值
3.遍历集合获取角标计算斜对角最大值,与行列最大值比较,输出最终最大值

此题值200分,其他两题值100分,难点在于需要写一个递归函数用来根据当前坐标计算当前坐标的下一个斜对角,判断是否在两个list中存在同一角标的数据,存在则继续递归下一个斜对角线坐标,最好是左右斜对角区分计算。本人测试用例只过了一半结果时间到了强制交卷。

二、综合测评(8-10)

52页的心理测试题,我提前没看答题技巧,耿直boy测出来乐观值偏低,还好没down掉

综测答题技巧:

  1. 要容易放松,重大事情来临前很平静,不会感到焦虑,能够不理会别人的批评指责,

  2. 要乐观认为事情会往好的方面发展,对未来要保有乐观态度,要信赖他人认为他人可靠,

  3. 要容易相信别人说的话,情感表达要少,要喜怒不形于色,精力要旺盛,要喜欢忙喜欢繁重工作,

  4. 要喜欢与人为伴,要享受团队氛围,没有同伴会感到寂寞。

  5. 答题阳光一点,轻松的,积极乐观的。

三、技术一面(8-14)

    1. 简单介绍当前工作情况
    2. 组长会怎么做整体工作安排
    3. 开发任务紧张同时组员开发出现困难会怎么解决
    4. 三年工作经验以来,有哪些深刻的感想,比如技术结构调整升级,锻炼的那些方面(此处回答了从最早学校的servlet-jsp,到spring-springmvc-mybatis,到boot-thymeleaf,到微服务经历与心得。以及设计模式)
    5. 谈谈常用的设计模式,举一个应用实例。(此处答业务需求,为什么用,代码怎么实现的)
    6. 线程池有用到过吗,讲讲线程池参数流转,有那些参数,怎么触发,每个参数的作用。(常见八股文,从参数答到内存溢出,再答到拒绝策略)。工作中应用场景。
    7. 池化场景有哪些,好处是什么(数据库连接池,spring单例池,常量池)
    1. 消息中间件了解哪些,实际用到了哪些。(答kafka)
    2. 什么场景下会使用到kafka(答多个服务之间通信,削峰异步解耦)
    3. 消息消费中需要注意那些问题(答消息丢失,消息重复消费,中间件自身的高可用,消费者日志管理)
    4. 怎么处理重复消费(答消费者手动提交offset,消费者消费记录,消费前比对消息key避免重复消费,ack=1容忍数据丢失避免重复消息。ack=-1容忍消息重复避免消息丢失,通过幂等性对推送消息做去重)
    5. kafka的幂等性怎么处理的(通过携带生产者编号,分区号,数据序列化编号在broker端坐比对,三个参数相同只会持久化其中一条数据)
    6. 怎么处理需要重复消费的场景(答人工介入,把我问倒了⊙﹏⊙∥)
    7. kafka会怎么处理消费者消费失败的问题(答kafka推拉流两种模式,拉的情况下消费者返回offsetkafka不会再管此种效率更高,推模式超时未收到回应会重复推送消息给消费者)
    8. kafka架构与消息流程是怎样的,要怎么实现消息顺序消费(答默认消费者组并发消费无法保证顺序性,需要设置为单个消费者执行消费操作。或消费者集群设置redis缓存来保证集群内消息消费的顺序性)(面试官回,大体思路是正确的,具体实现还需自己会后去探索)
    1. 数据库设计中我会如何去设计一张表(答根据业务场景高频字段创建索引,根据业务场景提前做好表的拆分与外关联,表字段数据类型设计)
    2. 联合索引有什么原则
    3. mysql数据库建了两个字段,且设置了联合索引,如果其中有一个字段为空会出现什么问题?
    4. A,B字段设置联合索引,插入两个[“a”,null]。可以成功插进去吗?(答应该不会成功吧,回跑题了会后自己模拟一下)
    1. 算法题: 一个简单题答出来整体最高给良好,一个难题答出来最高给优秀 简单题:密码解密,输入一个串,第一个取出,第二个拼接到末尾,第三个取出,第四个拼到末尾。。。。直到最后一个取出。输出取出的串为解密串。
      当时的两个思路(12345),
      第一个是取一个挪一个(1 3452),放入递归,再取一个挪一个再递归(13 524).。。。
      第二个是取偶数角标拼奇数角标,放入递归(135 42)
      选了第二个思路写了半小时写出来个bug,数组长度奇偶不同递归取值的奇偶也会改变,太紧张也没时间调试,然后面试官说我想复杂了,分享屏幕给我讲了第一个思路,说再给我15分钟改代码。最后我15分钟重写了第一个思路的递归代码。丢人了
      (;′⌒`)。
      难题螺旋三角

一面结束,因为算法题的原因气氛略微凝重。整了太久的时间。Im sorry

四、技术二面(8-15)

  1. 自我介绍
  2. 项目介绍
  3. 谈谈springIOC的理解,有什么好处,解决了什么问题
  4. 谈谈springAOP的理解,切面编程有没有实际应用,有哪些注解,作用是什么,有那些应用场景
  5. Erika和zookeeper有了解过吗,作用是什么,主要解决了什么问题
  6. 父类有静态代码块,静态成员变量,成员变量,构造方法;子类继承父类也有这写东西,父类new子类对象的时候他们的加载顺序是怎样的(答,父类静态代码块-子类静态代码块-父类静态变量-子类静态变量-父类成员变量-父类构造函数-子类成员变量-子类构造方法)
  7. 谈谈JDK,JRE,JVM的理解,区别是什么;
  8. 谈谈对泛型的理解
  9. 发了一道题大概是Integer i = 1; new Integer(1);new Integer(1);new Integer(256);Integer j = 256; 互相用== 比较;
  10. 发了一道题 switch(i)case 不啦不啦不啦。问打印什么(其实考点就是case没有break)
  11. 发了一道算法题 样例入参,数组[1,12,50,-23,-1,9],k=4,请找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。

五、主管面(8-16)

  1. 自我介绍
  2. 介绍项目开发团队
  3. 介绍一下项目自研功能和第三方模块
  4. 介绍一下最核心的模块
  5. 如何保证核心模块的高可用(此处答,集群,负载均衡,缓存,多线程,分布式,消息队列)
  6. 描述一下处理过线上最紧急的一个问题
  7. 系统的设计上和解决方案上有没有什么改进
  8. 讲讲对分布式升级微服务架构的设计方案
  9. 公司有自己的编码规范吗,怎么理解编码规范的
  10. 介绍一下项目研发流程,怎么带组员进行业务开发
  11. 对自己的技术做一些评价
  12. 介绍一下自己的职业规划,工作地
  13. (自己的提问时间)

六、资面(8-19)

  1. 介绍一下自己
  2. 前两分工作离职的原因
  3. 为什么选择跨城市
  4. 工作中最印象深刻的事情,收获了什么
  5. 老家是哪里,父母在哪里,有没有女朋友
  6. 手上有没有offer(此处被建议如果有高薪offer的就直接回答有,但首要目标是OD和华为平台,然后拿已有的offer去争取高薪资)
  7. 跨城市的期望薪资是多少(此处如果想争取高薪,考虑从城市经济体量生活成本,行业经济体量,华为行业红利,面试过程,自身技术能带来什么去争取)
  8. 面试官讲:定级和华为内部评定的薪资,然后介绍华为文化,再pua一下,最后再说虽然没达到期望薪资会去拉通主管帮忙争取,如果争取不到的话当前薪资能否接受。

后面就是走审批流程,直到收到正式offer才算结束(这个过程听说很长)

七、结果

  1. 三个工作日邮件收到正式offer,定级D2,薪资不高属于一线城市平均值,本人普本毕业两年,没被卡学历,算上年终奖和其他福利也知足了,一个月后入职,有特殊情况还可提前一周申请延期。

八、个人点评

  1. 面试流程还是很严谨的,面试官风格因人而异,有重点问中间件的,有重点问基础的,有
    重点问算法数据结构的,还有重点问数据库的。
  2. 手撕算法题的时空复杂度是一个很核心的考量标准。
  3. 主管面要注意控制氛围,不要蹬鼻子上脸,也不要冷场或者胆怯,大方自信有度即可。(一般挂在这里的蛮大可能是这个原因,最好能留下深刻印象,因为最后谈薪和去留,主管有决定性作用)
  4. 给的薪资真不高,可能是因为最近大面积扩招的原因,薪水压得很低,甚至很多面试者拿的是平薪或者降薪offer,所以如果不是非华为经验不可,建议还是慎重考虑。
  5. 非目标院校转正是不可能的。目标院校还有那么一丝可能。
  6. pua文化名不虚传
  7. 定级和薪资有华为内部很严格的流程,说白了就是他们定下来给多少就拿多少,想多要几乎不可能,还要加面。
  8. 全部流程很长,巨长,合理安排多个面试的节奏,不要一边被催着入职,一边等华为OD结果。

八、跨省市跳槽五险一金处理办法

跨省市跳槽五险一金处理办法

有错误的地方请大佬指正