📅  最后修改于: 2023-12-03 14:42:07.075000             🧑  作者: Mango
最近我有幸参加了Innovaccer的SDE实习生面试,以下是我的面试经历。
在第一次面试中,我首先被问到了我的项目经验,我详细地介绍了自己曾经完成过的一些个人项目,并且解释了一些实现的细节。之后,面试官提出了一些技术问题,我准确如数家珍地回答了它们。接下来,我被要求解决一道技术问题,我在面试官的指导下完成了它。
以下是我在一面中解答的技术问题:
问题: 如何用Python实现二分查找?
答案:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
right = mid - 1
else:
left = mid + 1
return -1
在第二次面试中,我被要求完成一道面试题,即设计一个算法,从一个数组中找到两个数的和等于给定的目标值。我首先提出了一种暴力算法,但在面试官的鼓励下,我成功地设计出了一个时间复杂度为O(n)的更优算法。
以下是我在二面中完成的面试题:
问题: 设计一个算法,在一个数组中找到两个数的和等于给定的目标值。
答案:
def two_sum(arr, target):
seen = {}
for i, num in enumerate(arr):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return None
在第三次面试中,我和高层管理人员进行了面试,并回答了一些关于公司文化以及我自己如何与团队一起工作的问题。在面试结束后,我得到了一个实习的机会,并对未来在Innovaccer的工作感到非常期待。
以上是我在Innovaccer的面试经历,我相信这对像我一样正在寻找实习机会的程序员是一个很好的参考。