- 0
- 0
- 约7.86千字
- 约 23页
- 2026-02-17 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发岗位面试题库及参考答案
一、编程能力测试(共5题,每题10分)
1.编程实现快速排序算法
题目:请用你熟悉的编程语言实现快速排序算法,并说明其时间复杂度和空间复杂度。
参考答案:
python
defquick_sort(arr):
iflen(arr)=1:
returnarr
pivot=arr[len(arr)//2]
left=[xforxinarrifxpivot]
middle=[xforxinarrifx==pivot]
right=[xforxinarrifxpivot]
returnquick_sort(left)+middle+quick_sort(right)
时间复杂度:平均O(nlogn),最坏O(n^2)
空间复杂度:O(logn)(递归栈)
2.实现一个简单的LRU缓存
题目:请设计一个LRU(LeastRecentlyUsed)缓存系统,支持get和put操作,并说明实现思路。
参考答案:
python
classLRUCache:
def__init__(self,capacity:int):
self.capacity=capacity
self.cache={}
self.order=[]
defget(self,key:str)-int:
ifkeyinself.cache:
self.order.remove(key)
self.order.append(key)
returnself.cache[key]
return-1
defput(self,key:str,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)
3.编写一个函数判断二叉树是否对称
题目:请用代码实现判断一个二叉树是否对称(即镜像对称)。
参考答案:
python
classTreeNode:
def__init__(self,val=0,left=None,right=None):
self.val=val
self.left=left
self.right=right
defisSymmetric(root:TreeNode)-bool:
defcheck(left,right):
ifnotleftandnotright:
returnTrue
ifnotleftornotright:
returnFalse
return(left.val==right.val)andcheck(left.left,right.right)andcheck(left.right,right.left)
ifnotroot:
returnTrue
returncheck(root.left,root.right)
4.实现一个简单的Trie(前缀树)
题目:请实现一个Trie(前缀树)类,支持插入和搜索操作。
参考答案:
python
classTrieNode:
def__init__(self):
self.children={}
self.is_end=False
classTrie:
def__init__(self):
self.root=TrieNode()
definsert(self,word:str)-None:
node=self.root
forcharinword:
ifcharnotinnode.children:
node.children[char]=TrieNode()
node=node.children[char]
node.is_end=True
defsearch(self,word:str)-bool:
node=self._find(word)
returnnodeisnotNoneandnode.is_end
def_find(self,word:str):
node=self.root
forcharinword:
ifcharnotin
原创力文档

文档评论(0)