2026年软件工程师职位面试题与解析.docxVIP

  • 2
  • 0
  • 约9.38千字
  • 约 25页
  • 2026-03-02 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年软件工程师职位面试题与解析

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

题目1(10分):数据结构与算法基础

题目内容:

请实现一个函数,找出数组中第k个最大的元素。要求不使用排序算法,时间复杂度不超过O(n)。

示例:

输入:nums=[3,2,1,5,6,4],k=2

输出:5

答案:

python

deffindKthLargest(nums,k):

defpartition(left,right,pivot_index):

pivot_value=nums[pivot_index]

nums[pivot_index],nums[right]=nums[right],nums[pivot_index]

store_index=left

foriinrange(left,right):

ifnums[i]pivot_value:

nums[store_index],nums[i]=nums[i],nums[store_index]

store_index+=1

nums[right],nums[store_index]=nums[store_index],nums[right]

returnstore_index

defselect(left,right,k_smallest):

ifleft==right:

returnnums[left]

pivot_index=left

pivot_index=partition(left,right,pivot_index)

ifk_smallest==pivot_index:

returnnums[k_smallest]

elifk_smallestpivot_index:

returnselect(left,pivot_index-1,k_smallest)

else:

returnselect(pivot_index+1,right,k_smallest)

returnselect(0,len(nums)-1,k-1)

解析:

这道题考察的是快速选择算法(Quickselect)的实现。快速选择算法是快速排序的变种,通过选择一个基准元素,将数组分为两部分,然后只对包含第k个最大元素的部分继续处理,从而实现O(n)的平均时间复杂度。关键在于合理的基准选择和分区操作,这里的实现采用了左右指针法进行分区,确保了元素的正确归类。

题目2(10分):动态规划问题

题目内容:

给定一个字符串,请你找出其中不含有重复字符的长度最长的子串的长度。例如,输入:abcabcbb,输出:3,因为最长无重复字符的子串是abc。

答案:

python

deflengthOfLongestSubstring(s:str)-int:

char_set=set()

left=0

max_length=0

forrightinrange(len(s)):

whiles[right]inchar_set:

char_set.remove(s[left])

left+=1

char_set.add(s[right])

max_length=max(max_length,right-left+1)

returnmax_length

解析:

这道题考察的是滑动窗口技术。通过维护一个窗口(由左右两个指针表示),在遍历字符串时,如果发现当前字符已经在窗口中,则移动左指针直到窗口中没有重复字符。每次移动后,更新最长子串长度。这种方法避免了重复计算,时间复杂度为O(n)。

题目3(10分):树与图算法

题目内容:

请实现二叉树的层序遍历(按深度优先遍历顺序)。例如:

输入:[3,9,20,null,null,15,7]

输出:[[3],[9,20],[15,7]]

答案:

python

fromcollectionsimportdeque

fromtypingimportList,Optional

classTreeNode:

def__init__(self,val=0,left=None,right=None):

self.val=val

self.left=left

self.right=right

deflevelOrder(root:Optional[TreeNode])-List[List[int]]:

ifnotroot:

return[]

result=[]

queue=deque([root

文档评论(0)

1亿VIP精品文档

相关文档