- 3
- 0
- 约6.36千字
- 约 22页
- 2025-09-11 发布于福建
- 举报
第PAGE页共NUMPAGES页
2025年软件开发工程师中级面试模拟题集与解析
一、编程题(共5题,每题10分)
题目1(算法设计)
问题描述:
给定一个包含重复整数的数组,找出所有不重复的三元组,使得这三个数的和为0。例如,给定数组`nums=[-1,0,1,2,-1,-4]`,一个有效的三元组是`[-1,0,1]`和`[-1,-1,2]`。
要求:
-时间复杂度不超过O(n2)
-不使用额外的存储空间(除了用于输出结果的变量)
python
defthree_sum(nums):
#请在此处编写代码
pass
解析:
1.首先对数组进行排序,排序后可以更容易地避免重复的三元组。
2.使用双指针法,对于每个元素,使用左右指针分别指向剩余数组的左右两端,计算和并根据和的值调整指针位置。
答案:
python
defthree_sum(nums):
nums.sort()
n=len(nums)
result=[]
foriinrange(n):
ifi0andnums[i]==nums[i-1]:
continue
left,right=i+1,n-1
whileleftright:
total=nums[i]+nums[left]+nums[right]
iftot
原创力文档

文档评论(0)