📜  HashedIn 2022 年面试经历(1)

📅  最后修改于: 2023-12-03 15:31:06.222000             🧑  作者: Mango

HashedIn 2022 年面试经历

我很荣幸地参加了 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 公司为我提供这次机会,并期待今后有机会能够加入到这个团队中。