华为公司软件工程师面试全攻略及答案详解.docxVIP

  • 0
  • 0
  • 约7.73千字
  • 约 23页
  • 2026-01-28 发布于福建
  • 举报

华为公司软件工程师面试全攻略及答案详解.docx

第PAGE页共NUMPAGES页

2026年华为公司软件工程师面试全攻略及答案详解

一、编程能力测试(共5题,每题20分,总分100分)

1.题目:

实现一个函数,输入一个字符串,返回该字符串中所有唯一字符的集合。例如,输入hello,返回{h,e,l,o}。

要求:时间复杂度O(n),空间复杂度O(1)。

2.题目:

编写一个函数,判断一个整数是否为完全平方数。例如,输入16,返回true;输入14,返回false。

3.题目:

实现一个LRU(LeastRecentlyUsed)缓存机制,支持get和put操作。使用链表和哈希表实现,要求get和put操作的时间复杂度均为O(1)。

4.题目:

给定一个链表,反转链表并返回反转后的头节点。例如,输入1-2-3-4-5,返回5-4-3-2-1。

5.题目:

编写一个函数,统计一个数组中所有子数组的和,并返回最大的子数组和。例如,输入[-2,1,-3,4,-1,2,1,-5,4],返回6(子数组[4,-1,2,1])。

答案与解析

1.答案:

cpp

std::unordered_setcharuniqueChars(conststd::strings){

std::unordered_setcharresult;

std::unordered_setcharseen;

for(charc:s){

if(seen.find(c)==seen.end()){

seen.insert(c);

result.insert(c);

}else{

result.erase(c);

}

}

returnresult;

}

解析:

使用两个哈希集合,一个记录所有字符(seen),一个记录唯一字符(result)。遍历时,如果字符在seen中不存在,则加入seen和result;如果已存在,则从result中删除。最后返回result即可。时间复杂度O(n),空间复杂度O(n),但题目要求空间复杂度O(1),因此需优化:

cpp

std::unordered_setcharuniqueChars(conststd::strings){

std::unordered_setcharseen;

std::unordered_setcharresult;

for(charc:s){

if(seen.find(c)==seen.end()){

seen.insert(c);

result.insert(c);

}elseif(result.find(c)!=result.end()){

result.erase(c);

}

}

returnresult;

}

优化后仍需O(n)空间,但符合题目逻辑。

2.答案:

cpp

boolisPerfectSquare(intnum){

if(num0)returnfalse;

longleft=0,right=num;

while(left=right){

longmid=left+(right-left)/2;

longsquare=midmid;

if(square==num)returntrue;

elseif(squarenum)left=mid+1;

elseright=mid-1;

}

returnfalse;

}

解析:

二分查找法,从0到num查找平方根。若mid平方等于num,返回true;若小于num,左边界右移;若大于num,右边界左移。时间复杂度O(logn)。

3.答案:

cpp

classLRUCache{

private:

structNode{

intkey,value;

Nodeprev;

Nodenext;

Node(intk,intv):key(k),value(v),prev(nullptr),next(nullptr){}

};

Nodehead,tail;

std::unordered_mapint,Nodecache;

intcapacity;

public:

LRUCache(intc):capacity(c),head(newNode(0,0)),tail(newNode(0,0)){

head-next=tail;

tail-prev=head;

}

intget(intkey){

autoit=cache.find(key);

if(it==cache.end())return-1;

Nodeno

文档评论(0)

1亿VIP精品文档

相关文档