返回博客列表
职业规划 Career

Harvey AI SWE New Grad面试题和答案

Harvey AI SWE New Grad面试题和答案 (English Translation Coming Soon)

2025-02-15
15分钟阅读
Career Expert

废话不多说,直接上干货!刚面完Harvey AI的New Grad SWE岗,感觉自己半条命都没了,赶紧趁热打铁给姐妹们分享一下面经。希望能帮助到后面要面试的同学!

我的面试流程是这样的:一轮OA,一轮电面,然后就是Virtual Onsite。Onsite一共四轮,分别是两轮Coding,一轮System Design,还有一轮Behavioral。强度还是挺大的,从下午一点一直面到五点,中间就休息了十分钟。不得不说,Harvey作为一家Series C的独角兽,对Candidate的要求真的不低。

下面是我还记得的一些面试题,希望能给大家一些参考:

第一题:Behavioral Question

问题:“Tell me about a time you had to learn a new technology quickly.”

我的回答:我当时说的是我上一个实习的经历。当时组里要用一个新的Internal aPI,但是文档不是很全,我就主动去读了那个API的源代码,然后自己写了个简单的Demo,把整个流程跑通了。我还顺便把踩过的坑都记录下来,写了个简单的教程,分享给了组里的其他同事。我觉得这个问题的关键在于,要展示出你快速学习新知识的能力,以及你的主观能动性。不要只说你学了什么,要说你是怎么学的,以及你学完之后做了什么。最好能有一个具体的例子,有数据支撑就更好了。

第二题:Coding - Algorithm

问题:“Given a list of legal documents, find all the documents that contain a specific set of keywords. The keywords must appear in a specific order, but not necessarily contiguously.”

我的思路:这道题其实是Two Pointers的一个变种。我的解法是,先把每个document都看成一个word list,然后用两个pointer,一个指向keyword list,一个指向document的word list。如果两个pointer指向的词相同,那么两个pointer都向后移动一位。如果不同,那么只有document的pointer向后移动。如果keyword的pointer走到了最后,那么就说明这个document是符合要求的。这个算法的Time Complexity是O(N×L),其中N是document的数量,L是每个document的平均长度。Space Complexity是O(1)。面试官对我这个解法还是比较满意的,还追问了一些edge case,比如keyword list是空的,或者document是空的怎么办。这些细节大家在准备的时候也要考虑到。

第三题:Coding - Data Structure

问题:“Design a data structure to store and retrieve legal case precedents efficiently. You should be able to search for precedents based on case name, jurisdiction, and date.”

我的思路:这道题考察的是Data Structure的设计能力。我当时提出的方案是,用一个HashMap来存所有的case,key是case的ID,value是一个Case object。Case object里面包含了case name, jurisdiction, date, content等信息。然后,为了能够快速根据case name, jurisdiction, 和 date来查找,我额外用了三个HashMap,分别把case name, jurisdiction, 和 date映射到case ID的list。这样一来,查找的时间复杂度就从O(N)降到了O(1)。面试官听完我的思路之后,又追问了如果数据量非常大,内存放不下怎么办。我说可以考虑用一些外部存储,比如数据库,或者是一些分布式的caching system,比如Redis。踩过坑的人都知道,这种开放性问题,一定要考虑scalability。

第四题:System Design

问题:“Design a system that can summarize long legal documents.”

我的思路:这是一道非常经典的System Design题,而且和Harvey的业务非常相关。我的设计思路是,首先,我们需要一个Frontend来让用户上传文档,以及查看总结结果。然后,我们需要一个Backend来处理用户的请求。Backend收到请求后,会先把任务放进一个Message Queue里,然后异步处理。真正的summarization工作会由一个专门的Worker来完成。这个Worker会从Queue里取出任务,然后调用一个Machine Learning model来生成总结。最后,当总结生成后,Worker会把结果存到数据库里,并且通过WebSocket通知Frontend。面试官对我的设计比较满意,还和我探讨了一些细节,比如用什么model,如何评估总结的质量,以及如何处理超长的文档等等。说实话,这轮面试压力最大,因为System Design没有标准答案,很考验平时的积累。

第五题:Coding - LeetCode Style

问题:”Given a binary tree, find the length of the longest consecutive sequence path.”

我的思路:这道题是LeetCode原题。我当时用的是DFS的解法。我们对Binary Tree进行深度优先遍历,记录下当前连续序列的长度。当我们访问一个节点时,如果它的值是父节点的值加一,那么当前序列的长度就加一。否则,就从1开始重新计数。在遍历的过程中,我们用一个全局变量来记录下最长的连续序列长度。这个算法的Time Complexity是O(N),Space Complexity是O(H),其中N是节点的数量,H是树的高度。这道题属于比较基础的题目,只要刷过题的同学应该都能做出来。

总的来说,Harvey的面试还是很有挑战性的,既考察了你的Coding能力,也考察了你的System Design能力和学习能力。希望我的分享能对大家有所帮助!大家加油,offer都会有的!

#北美求职 #软件工程师 #面试经验 #Harvey #AI #NewGrad #面经 #SWE #求职 #CS

延伸阅读 Recommended Reading

careerInterviewGuide2025

免费咨询美国求职

扫码添加小助手
获取更多干货与内推机会

WeChat QR Code
US Job Search Companion