华为OD面经--更新中……
背景:因为大四下的成绩登记问题学位证晚拿两个月,原公司不愿意等,只能重新找工作。感触良多,记录一下吧。
8.13 联系接口人
8.11刚接到Offer失效通知,emo中,过了个周末开始找工作,然后又准备其他面试,拖了一段时间才笔试。
8.22 机试
三道题都不难,应该最多中等难度吧。
1.所有(Ai, Bj)数对
同一个数轴X上有两个点的集合A={A1,A2,...,Am}和B={B1,B2,...,Bn},Ai和Bj均为正整数,A、B已经按照从小到大排好序,A、B均不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(Ai,Bj)数对... 1)Ai<= Bj 2)Ai,Bj之间的距离小于等于R 3)在满足1)2)的情况下,每个Ai只需输出距离最小的数对即可
2.数据分类
对一个数据a进行分类,分类方法为:此数据a(四个字节大小)的四个字节相加 % 一个给定的值,如果得到的结果小于一个给定的值c,则此结果即为数据a的类型;如果得到的结果大于或者等于c,则此结果无效即为数据a的类型无效。 比如一个数据a = 0x01010101,b = 3,按照分类方法计算(0x01 + 0x01 + 0x01 + 0x01)% 3 = 1。所以如果 c = 2,则此a的类型是1,如果c = 1,则此a的类型是无效。 示例1: 现给定c = 5,b = 2,数据 a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}。计算数据最多的类型(有效类型)有多少个数据。 输出:5
3.数据最节约的备份方法
有若干个文件,使用刻录光盘的方式进行备份,假设每张光盘的容量是500MB,求使用光盘最少的文件分布方式 所有文件的大小都是整数的MB,且不超过500MB;文件不能分割、分卷打包 输入:一组文件的大小 输出:使用的最少的光盘数量
8.23 性格综测
没啥好说的,积极向上就完事了,我没怎么注意,感觉有些前后不一致啥的,也过了
8.25 hr资面(15min)
看了一圈好像华为云的喜欢先hr面
纯聊天,问了为啥现在还在找工作,聊期望薪资,工作地点,部门业务,未来发展,建议我好好准备面试他好给我定工资……
8.28 一面(1h30min)
只记得这么些个了
自我介绍
1.聊项目,挑一个最熟悉的介绍。讲了项目背景,项目架构和主要工作。问了消息队列的设计、k8s的pod是什么、计算任务的流转时间、公有云用的谁家的blabla。然后开始锐评
Q:为什么SLA要设得这么短?
A:???甲方要求的
Q:pod运行状态和任务计算状态为什么放redis,我觉得mysql就行
A:单个任务生命周期有多次状态更新,qps挺高的,而且需要频繁更新频繁读取做聚合分析。
Q:我觉得没必要,不要为了用技术而用
A:你说得对
Q:用过这个app吗
A:没,我就只是个计算平台,业务前台关我啥事
Q:开发也要懂业务啊
A:你说得对
2.做题,自定义排序方式
给定一个数组data和数组sortBy,对data数组内的数据按照sortBy数组给定的顺序排序,如果数据不在sortBy数组内,则按升序排列并放在这些数据之后 示例 输入: data:[3,1,1,3,4,5] sortBy[3,1] 输出: [3,3,1,1,4,5]
想写快排边界没判定好没写出来,写了个冒泡混过去了(气死
ps:面试官觉得我compare方法if判断太多次,想给我优化一下,想了会没想出来,打个哈哈过了
3.java基本数据类型
4.Exception和error
5.ArrayList和LinkedList
6.Set、Map,底层
7.单例模式,怎么防止反射或反序列化攻击
8.如何启动线程
9.线程池,挑几个说说
10.把数组内的偶数排到数组后方,奇数排到前方(口述)
11.try catch finally ++i啥的问你输出和返回值
12.1g内存,100g文件,排序(刚说到一半想了一会就被他打断了
13.反问
8.29 二面(50min)
自我介绍
无情的八股机器,就嗯问,基本只问了java相关,计网数据库都没问
做题 二选一
1.判断单向链表是否回文 2.最长公共前缀
没有反问环节