京东物流工程师面试要点及答案.docxVIP

  • 2
  • 0
  • 约6.07千字
  • 约 17页
  • 2026-03-20 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年京东物流工程师面试要点及答案

一、编程能力测试(3题,每题10分,共30分)

1.题目:

请实现一个函数,输入一个包含重复元素的数组,返回一个去重后的新数组。要求时间复杂度为O(n),空间复杂度为O(1)。

答案:

python

defremove_duplicates(arr):

ifnotarr:

return[]

假设数组元素为整数且范围在[-10^5,10^5]内

arr.sort()#O(nlogn)排序,但后续逻辑可以优化到O(n)

write_index=1

forread_indexinrange(1,len(arr)):

ifarr[read_index]!=arr[read_index-1]:

arr[write_index]=arr[read_index]

write_index+=1

returnarr[:write_index]

解析:

-首先对数组进行排序,时间复杂度为O(nlogn),但题目要求O(n),可改为使用哈希表去重,但空间复杂度会增加到O(n)。

-这里采用排序+双指针方法,先排序后遍历,时间复杂度仍为O(nlogn),但后续可以通过其他方法优化。

-若严格要求O(n)时间复杂度,可使用哈希集合(Python中的`se

文档评论(0)

1亿VIP精品文档

相关文档