- 3
- 0
- 约8.4千字
- 约 29页
- 2026-03-13 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件开发工程师面试题库:技术及非技术问题
技术问题
数据结构与算法(共5题,每题10分)
1.题目:
请实现一个函数,找出数组中重复次数超过一半的元素。假设数组非空,且一定存在这样的元素。
答案:
python
defmajority_element(nums):
count=0
candidate=None
fornuminnums:
ifcount==0:
candidate=num
count+=(1ifnum==candidateelse-1)
returncandidate
解析:
使用Boyer-Moore投票算法,初始时count为0,遍历数组时,若count为0则设当前数为候选数,若当前数与候选数相同则count加1,否则减1。由于超过一半的元素必定存在,最终候选数即为答案。
2.题目:
给定一个包含n个整数的数组,判断数组中是否存在三个元素a,b,c,使得a+b+c=0。请找出所有不重复的三元组。
答案:
python
defthree_sum(nums):
nums.sort()
res=[]
n=len(nums)
foriinrange(n):
ifi0andnums[i]==
原创力文档

文档评论(0)