- 0
- 0
- 约6.01千字
- 约 14页
- 2026-01-05 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年华为研发工程师面试题集及解析
一、编程基础题(共5题,每题8分,总分40分)
1.题目:请实现一个函数,输入一个整数数组,返回该数组中连续子数组的最大和。例如,输入`[-2,1,-3,4,-1,2,1,-5,4]`,输出`6`,因为`[4,-1,2,1]`的和最大。
要求:不能使用额外的存储空间,时间复杂度要求O(n)。
答案:
cpp
intmaxSubArray(vectorintnums){
intmax_sum=nums[0];
intcurrent_sum=nums[0];
for(inti=1;inums.size();++i){
current_sum=max(nums[i],current_sum+nums[i]);
max_sum=max(max_sum,current_sum);
}
returnmax_sum;
}
解析:该问题可以使用动态规划解决。核心思想是维护两个变量:`current_sum`表示以当前元素结尾的最大子数组和,`max_sum`表示全局最大子数组和。对于每个新元素,可以选择将其加入之前的子数组中,或者以当前元素重新开始。通过遍历数组一次,即可得到结果。
2.题目:请实现快速排序算法,并分析其平均时间复杂度和最坏情况时间复杂度。
答案:
cpp
voidquickSort(vectorintnums,intleft,intright){
if(left=right)return;
intpivot=nums[left+(right-left)/2];
inti=left,j=right;
while(i=j){
while(nums[i]pivot)i++;
while(nums[j]pivot)j--;
if(i=j){
swap(nums[i],nums[j]);
i++;
j--;
}
}
quickSort(nums,left,j);
quickSort(nums,i,right);
}
解析:快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n^2),通常出现在每次分区选择的基准都是最小或最大元素时。通过随机选择基准或使用三数取中法可以优化最坏情况。
3.题目:请实现一个函数,判断一个字符串是否是另一个字符串的子序列。例如,输入`s=abc`,`t=ahbgdc`,返回`true`,因为`s`是`t`的子序列。
答案:
cpp
boolisSubsequence(strings,stringt){
inti=0,j=0;
while(is.size()jt.size()){
if(s[i]==t[j])i++;
j++;
}
returni==s.size();
}
解析:双指针法。一个指针遍历`s`,另一个指针遍历`t`。如果`s[i]==t[j]`,则`s`的指针移动;无论如何`t`的指针移动。最后如果`s`的指针遍历完,则返回`true`。
4.题目:请实现一个函数,将一个非负整数转换为罗马数字。例如,输入`3`,输出`III`;输入`4`,输出`IV`;输入`1994`,输出`MCMXCIV`。
答案:
cpp
stringintToRoman(intnum){
vectorpairint,stringvalueSymbols={
{1000,M},{900,CM},{500,D},{400,CD},
{100,C},{90,XC},{50,L},{40,XL},
{10,X},{9,IX},{5,V},{4,IV},{1,I}
};
stringroman;
for(autopair:valueSymbols){
while(num=pair.first){
roman+=pair.second;
num-=pair.first;
}
}
returnroman;
}
解析:罗马数字由几个基本符号组合而成,每个符号代表一个固定的数值。通过从大到小匹配数值,逐步构建罗马数字字符串。
5.题目:请实现一个函数,找出数组中重复次数超过一半的元素。例如,输入`[2,2,1,1,1,2,2]`,输出`2`。
答案:
cpp
intmajorityElement(vectorintnums){
intcount=0;
intcandidate=0;
for(intnum:num
您可能关注的文档
- 2026年护士招聘面试题含答案.docx
- 2026年快消品市场部经理面试问题及答案参考.docx
- 2026年期货交易员应聘要点解析及题目参考.docx
- 2026年市场营销策划岗位面试题目集.docx
- 2026年电信运营商技术支撑人员面试题集.docx
- 2026年企业融资秘籍证券项目经理面试问题集.docx
- 2026年保险行业精算师面试题集及解答.docx
- 2026年协鑫集团质量经理转正面试题库含答案.docx
- 2026年项目工程师岗位面试题库含答案.docx
- 2026年数据科学与分析专岗技能题目及解答方法.docx
- 2026华能(福建漳州)热电有限责任公司校园招聘备考题库有答案详解.docx
- 2026北京市水利规划设计研究院校园招聘3人备考题库附答案详解.docx
- 2026北京城市学院顺义校区后勤处招聘备考题库及答案详解(易错题).docx
- 2026内蒙古赤峰二中和美分校(喀喇沁旗和美中学) “绿色通道”引进教师20人备考题库含答案详解.docx
- 2026北京航空航天大学飞行学院聘用编教务助理F岗招聘1人备考题库及完整答案详解.docx
- 2026内蒙古锡林郭勒盟锡林浩特市华润万家超市额尔敦路分公司招聘3人备考题库及1套参考答案详解.docx
- 2026吉林白山市长白边境管理大队招聘边境管理专职警务辅助人员30人备考题库完整参考答案详解.docx
- 2026天津力生制药股份有限公司面向社会选聘营销中心总经理1人备考题库及答案详解参考.docx
- 2026北京航空航天大学计算机学院聘用编产品设计工程师F岗招聘1人备考题库及参考答案详解1套.docx
- 2026云南玉溪市红塔区玉兴街道党群服务中心公益性岗位招聘1人备考题库及参考答案详解一套.docx
原创力文档

文档评论(0)