互联网公司算法工程师面试题详解.docxVIP

  • 0
  • 0
  • 约6.34千字
  • 约 19页
  • 2026-01-30 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年互联网公司算法工程师面试题详解

一、编程基础与数据结构(共5题,总分20分)

1.题目1(4分):

实现一个函数,输入一个正整数`n`,返回`n`的阶乘。要求不使用递归,且处理大数阶乘的情况(例如`n=100`)。

答案与解析:

python

deffactorial(n):

result=1

foriinrange(2,n+1):

result=i

returnresult

解析:

-大数处理:Python的整数类型不受固定位数限制,可直接计算大数阶乘。若使用其他语言(如Java),需用`BigInteger`类或字符串模拟乘法。

-非递归实现:循环避免栈溢出,适合大数场景。

-优化建议:可使用分治法进一步优化,但基础实现已满足题目要求。

2.题目2(4分):

给定一个无重复元素的数组`nums`,返回所有可能的子集(包括空集)。

答案与解析:

python

defsubsets(nums):

result=[[]]

fornuminnums:

result+=[curr+[num]forcurrinresult]

returnresult

解析:

-回溯法:通过迭代扩展子集,避免重复计算。时间复杂度`O(2^n)`,空间复杂度`O(n2^n)`。

-迭代实现:也可用位运算(每个数字决定是否放入子集),但回溯更直观。

3.题目3(5分):

设计LRU(LeastRecentlyUsed)缓存,支持`get`和`put`操作,容量为`capacity`。

答案与解析:

python

classLRUCache:

def__init__(self,capacity:int):

self.capacity=capacity

self.cache={}

self.order=[]

defget(self,key:int)-int:

ifkeyinself.cache:

self.order.remove(key)

self.order.append(key)

returnself.cache[key]

return-1

defput(self,key:int,value:int)-None:

ifkeyinself.cache:

self.order.remove(key)

eliflen(self.cache)==self.capacity:

oldest=self.order.pop(0)

delself.cache[oldest]

self.cache[key]=value

self.order.append(key)

解析:

-双向链表+哈希表:链表记录访问顺序,哈希表实现`O(1)`访问。

-核心逻辑:

-`get`:命中则移动到链表末尾(代表最近使用)。

-`put`:新键覆盖旧键或删除最久未使用项。

4.题目4(3分):

反转一个单链表,返回反转后的头节点。

答案与解析:

python

classListNode:

def__init__(self,val=0,next=None):

self.val=val

self.next=next

defreverseList(head:ListNode)-ListNode:

prev=None

curr=head

whilecurr:

next_node=curr.next

curr.next=prev

prev=curr

curr=next_node

returnprev

解析:

-迭代法:三指针操作,时间`O(n)`,空间`O(1)`。

-递归法:更简洁但栈空间消耗更大,适合面试展示思路。

5.题目5(3分):

给定一个数组,返回其中重复次数超过`n/2`的元素。假设数组非空。

答案与解析:

python

defmajorityElement(nums):

count=0

candidate=None

fornuminnums:

ifcount==0:

candidate=num

count+=(1ifnum==candidateelse-1)

returncandidate

解析:

-Boyer-Moore投票算法:

-候选者初始为空,计数为0。

-遍历时,相同则+1,不同则-1,为0则更换候选者。

-最终候选者即为答案(适用于多数元素定义)。

二、算法设计(共4题,总分25分)

1.题目6(6分):

设计一个算法,找出无序数组中第`k`大元素。

文档评论(0)

1亿VIP精品文档

相关文档