- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第PAGE页共NUMPAGES页
2026年华为技术专员面试全攻略及答案
一、编程能力测试(5题,共30分)
说明:考察编程基础、算法设计及代码实现能力。题目涵盖C/C++、Java等语言,结合华为业务场景。
1.1编程题(6分)
题目:
给定一个无重复元素的整数数组`nums`和一个目标值`target`,请找出数组中和为目标值`target`的两个数,并返回它们的索引。你可以假设每个输入都有且只有一对解,不能重复使用同一个元素。
示例:
输入:`nums=[2,7,11,15],target=9`
输出:`[0,1]`(因为`nums[0]+nums[1]=2+7=9`)
要求:
-使用哈希表实现,时间复杂度O(n)。
-代码需包含主函数测试。
答案与解析:
cpp
includeiostream
includevector
includeunordered_map
usingnamespacestd;
vectorinttwoSum(vectorintnums,inttarget){
unordered_mapint,intnumMap;
for(inti=0;inums.size();++i){
intcomplement=target-nums[i];
if(numMap.find(complement)!=numMap.end()){
return{numMap[complement],i};
}
numMap[nums[i]]=i;
}
return{};//不应有此行,题目保证有解
}
intmain(){
vectorintnums={2,7,11,15};
inttarget=9;
vectorintresult=twoSum(nums,target);
coutIndices:result[0],result[1]endl;
return0;
}
解析:
-使用哈希表存储每个数字及其索引,遍历时直接查找`target-nums[i]`是否存在。
-时间复杂度O(n),空间复杂度O(n)。
1.2编程题(6分)
题目:
实现一个`LRU(LeastRecentlyUsed)缓存`,使用双向链表和哈希表实现。支持`get`和`put`操作。
要求:
-`get(key)`:返回键对应的值,若不存在返回-1。每次访问后,将该键值对移动到链表头部。
-`put(key,value)`:若键已存在,更新值并移动到链表头部;若不存在,插入到链表头部,并哈希表中添加。若超出容量,删除链表尾部元素。
示例:
LRU缓存容量为2:
`put(1,1)`→缓存是{[1,1]}
`put(2,2)`→缓存是{[2,2],[1,1]}
`get(1)`→返回1,缓存是{[1,1],[2,2]}
`put(3,3)`→删除键2,缓存是{[3,3],[1,1]}
`get(2)`→返回-1(未命中)
答案与解析:
cpp
includeiostream
includeunordered_map
usingnamespacestd;
//双向链表节点
structNode{
intkey,value;
Nodeprev;
Nodenext;
Node(intk,intv):key(k),value(v),prev(nullptr),next(nullptr){}
};
classLRUCache{
private:
unordered_mapint,Nodecache;
Nodehead,tail;
intcapacity;
voidaddNode(Nodenode){
node-next=head-next;
node-prev=head;
head-next-prev=node;
head-next=node;
}
voidremoveNode(Nodenode){
NodeprevNode=node-prev;
NodenextNode=node-next;
prevNode-next=nextNode;
nextNode-prev=prevNode;
}
voidmoveToHead(Nodenode){
removeNode(node);
addNode(node);
}
voidpopTail(){
Nodenode=tail-prev;
removeNode(nod
您可能关注的文档
最近下载
- 医院优质护理服务年终总结.pptx
- 2021川藏铁路隧道施工安全监测技术规程 2021 83页.pdf VIP
- 超星学习通网课《大学生心理健康与发展陈树林孔燕》尔雅答案2025题目及答案.docx
- 第一单元+生活中的音乐学习项目一+生活中的音乐课件2025-2026学年人教版(简谱)初中音乐七年级上册.pptx VIP
- GZ048 智慧物流赛项 评分标准(答案)-2023年全国职业院校技能大赛赛项正式赛卷.pdf VIP
- 最新NANDA护理诊断(2021–2023)(十).pdf VIP
- 城市大数据安全防护体系.docx VIP
- 国家开放大学2023年7月期末统一试《11620会计实务专题》试题及答案-开放本科 .pdf VIP
- PPT护理文书书写规范(2025).pptx VIP
- 部编版六年级上册语文第六单元测试卷(含答案).pdf VIP
原创力文档


文档评论(0)