📅  最后修改于: 2023-12-03 15:31:06.222000             🧑  作者: Mango
我很荣幸地参加了 HashedIn 公司的面试,这是我的面试经历。
面试流程共两轮,第一轮为在线编程实践,第二轮为技术面试。首先是在线编程实践,由面试官提供了一道算法题,要求在 30 分钟内用 Python 解决。
算法题是求二叉树中的最大路径和。我首先用递归的方法实现了这个算法,然后再用动态规划的方法做了优化。面试官对我的代码做了一些测试,然后问了一些问题,比如复杂度、空间复杂度等等。
以下是我的 Python 代码:
class Solution:
def maxPathSum(self, root: TreeNode) -> int:
self.max_sum = float('-inf')
def max_gain(node):
if not node:
return 0
left_gain = max(max_gain(node.left), 0)
right_gain = max(max_gain(node.right), 0)
price_newpath = node.val + left_gain + right_gain
self.max_sum = max(self.max_sum, price_newpath)
return node.val + max(left_gain, right_gain)
max_gain(root)
return self.max_sum
第二轮是技术面试,由一名技术专家面试,面试的主要内容是数据结构和算法。面试官先问了我二叉树中的一些基本概念,然后让我手写一些基本的算法,比如排序算法和查找算法。
以下是我写的快速排序算法的 Python 代码:
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [i for i in arr[1:] if i <= pivot]
greater = [i for i in arr[1:] if i > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
最后,面试官问了一些关于我的经验和技能的问题,也问了一些关于公司的问题。整个面试过程很顺畅,没有出现什么问题。
这是一个非常棒的面试经历,对于我来说非常有价值。我收获了很多,不仅学到了新知识,还学会了如何更好地表达自己。我感谢 HashedIn 公司为我提供这次机会,并期待今后有机会能够加入到这个团队中。