华为2022年秋招正式批算法工程师面经
一面和二面是同一天,间隔一小时。三面是第二天下午。
一面:
1、介绍自己,项目和论文(30分钟左右,面试官对项目的一些技术细节进行的询问)
2、复盘笔试,用二维前缀和原理求子矩阵和、机器人逃生(详见8.25华为笔试)
3、操作系统了解嘛?说一下进程调度策略有几种,多级反馈队列算法的原理阐述一下。
主要有6种,短作业先来先服务调度算法、短作业(进程)优先调度算法、高优先权优先调度算法(非抢占式和抢占式)、高响应比优先调度算法、时间片轮转法和多级反馈队列调度算法。
4、计算机体系结构了解嘛?cpu内有哪些基本指令?说一下mov指令的执行过程。5条,MOV、LAD、ADD、STO和JMP。分为两个部分,取值……执行……
5、STL模板库了解过嘛?如果要在vector中删除一个元素,怎么做?用erase和iterator,erase直接返回下一个有效迭代器的地址。(CSDN上面有详细过程)
6、手撕:给定数组,和待聚集的数据,求将数据聚集最少的交换次数。A=[0,0,0,1,1,0,1],将1聚集的最少交换次数为1。
7、反问。无
1小时15分钟
二面:
1、介绍自己,项目和论文(30分钟左右,面试官对论文的技术细节进行的询问)
2、如果开并行区,例如运行{sum+=i; }, 如何保证结果的正确性?使用互斥锁或者读写锁;若是并行区内函数运行复杂的话,使用数据集保存,最后合并数据集。
3、C++新特性了解嘛?说一下智能指针。share,weak,unique,auto在C++11中已弃用。share……,weak……,unique……。
4、面向对象是什么?介绍C++的三大特性。继承,多态,封装……
5、重写和重载的区别?
重载指的是在同一个作用域内,两函数的函数名可以相同,但是参数不能完全相同,可以是参数类型不同或者是参数个数不同,至于返回值,不影响重载。重写指的在继承关系中,子类中定义了一个与父类极其相似的虚函数。
6、设计模式了解嘛?随便挑一个你熟悉的,写一个例子。观察者设计模式,博客订阅……
7、手撕:一个工厂里面,工人的工位是整齐的(m*n的矩阵),每个工人生产手机数量不同。求,与同行和同列的工人相比,有多少个人生产的手机数量比S[i][j]位置上的多?
这个题目我是用遍历的方法暴力求解的,面试官说还有其他方法,给了我5分钟,没想出来。然后,面试官就说算了。
8、反问。无
1小时7分钟
三面:(本来都以为二面挂了,没想到居然过了)
1、介绍自己,项目和论文(10分钟)
2、以后想从事什么方向的工作?
3、对高性能计算了解嘛?
4、意向工作地点是在哪里?
5、反问。无
三面都通过了,已经进了池子,等捞。许愿华为OFFER!