阿里巴面试题及答案详解.docxVIP

  • 0
  • 0
  • 约5.12千字
  • 约 16页
  • 2026-10-31 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年阿里巴面试题及答案详解

一、编程题(共3题,每题20分)

1.数组中的重复数字(20分)

题目:

给定一个包含n个整数的数组,其中只有两个数字重复,其余数字均不重复。请找出这两个重复的数字。要求时间复杂度O(n),空间复杂度O(1)。

示例:

输入:[3,4,2,3,6,1]

输出:[3,4]

答案:

python

deffind_duplicates(nums):

duplicates=[]

fornuminnums:

index=abs(num)-1

ifnums[index]0:

duplicates.append(abs(num))

else:

nums[index]=-nums[index]

returnduplicates

示例

print(find_duplicates([3,4,2,3,6,1]))#输出:[3,4]

解析:

通过遍历数组,将每个数字的绝对值对应的索引位置的值取反。如果遇到已经取反的值,说明该数字重复。该方法利用了数组的空间,实现O(n)时间复杂度和O(1)空间复杂度。

2.前序遍历和中序遍历重建二叉树(20分)

题目:

给定前序遍历和中序遍历的结果,重建二叉树。假设二叉树中没有重复的数字。

示例:

前序遍历:[3,9,20

文档评论(0)

1亿VIP精品文档

相关文档