华为面经 | cpp软件工程师(已offer)
机考:
第一题:静态扫描可以快速识别源代码的缺陷,静态扫描的结果以扫描报告作为输出:
1、文件扫描的成本和文件大小相关,如果文件大小为N,则扫描成本为N个金币
2、扫描报告的缓存成本和文件大小无关,每缓存一个报告需要M个金币
3、扫描报告缓存后,后继再碰到该文件则不需要扫描成本,直接获取缓存结果给出源代码文件标识序列和文件大小宝列,求解采用合理的缓存策略,最少需要的金币数
第二题:某公司研发了一款高性能A处理器。每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7.
编号0-3的处理器处于同一个链路中,编号4-7的处理器处于另外一个链路中,不同链路中的处理器不能通信。
现给定服务器可用的处理器编号数组array,以及任务申请的处理器数量num,找出符合下列亲和性调度原则的芯片组合.
如果不存在符合要求的组合,则返回空列表。
亲和性调度原则:
如果申请处理器人数为1,则选择同一链路,剩余可用的处理器教量为1人的最佳,其次是剩余3个的为次佳,然后是剩余2人,最后是剩余4个。
如果申请处理器个数为2,则选择同一链路剩余可用的处理器数量2个的为最佳,其次是剩余4个,最后是剩余3个。如果申请处理器个数为4,则必须选择同一链路剩余可用的处理器数量为4个。如果由请处理器个数为8,则由请节点所有8个处理器
第三题:给定两个数组a,b,若a[i] == b[j] 则称[i,j] 为一个二元组,求在给定的两个数组中,二元组的个数。
一三题都比较简单,第二题很麻烦,最后只有三十几通过率,总分是330左右。
性格测试:没啥好说的,往狠了选。
技面1:八股文主要问的排序,项目问得比较多。手撕算法是比较简单的dp:
给你一个字符串:和一个李符串列表wordDict作为字典。请你判断是否可以利用字典中
出现的单词拼接出5。
注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
技面2:八股文只问了c/cpp区别还有一点多态啥的,也是项目问的比较多。手撕算法有点难,思路卡了半天,最后写出来了,可能可以用滑动窗口吧:
给定一个整数数组,数组大小是n,求子数组和为m,最小元素个数的子数组,并输出子数组大小
例如:
数组大小5 子数组和为10 数组为[3,4,3,2,1]
综面:其实也没啥好说的,主要是关于稳定性和职业规划的问题吧。
#23届找工作求助阵地##2022届毕业生现状#