📌  相关文章
📜  SDE 实习生 + FTE 的 HashedIn 面试体验(2021 年 1 月校园内)(1)

📅  最后修改于: 2023-12-03 14:47:19.989000             🧑  作者: Mango

SDE 实习生 + FTE 的 HashedIn 面试体验(2021 年 1 月校园内)

在2021年1月,我参加了HashedIn的SDE实习生和FTE的面试,以下是我的面试体验。

面试准备

在面试之前,我准备了以下内容:

  • 阅读了HashedIn的官方网站,了解了HashedIn的服务和技术咨询。
  • 复习了数据结构和算法,包括数组、链表、栈、队列、二叉树、图、排序算法等。
  • 练习了一些LeetCode的题目,包括Easy、Medium和Hard难度的题目。
面试流程
第一轮:技术面试

面试官首先问了我对HashedIn的了解和我对公司感兴趣的地方。然后开始了技术面试。

第一题是关于数据结构和算法的问题,题目如下:

给出一个数组,找出数组中出现次数最多的数,如果有多个出现次数相同的数,选择最小的那个数。

我首先提出了一种暴力解法,但是时间复杂度为O(n^2),不够优秀。然后我提出了一种使用哈希表的解法,时间复杂度为O(n)。面试官对我的哈希表解法很满意。

接下来面试官问我一些关于Java的问题,包括Java中的多态、抽象类、接口和static关键字等。

最后,面试官问我是否有什么问题要问他,我就问了一些关于公司文化和技术栈的问题。

第二轮:编程面试

第二轮面试是一道编程题,题目如下:

给出一个字符串,判断其中字符是否唯一(即没有重复字符)。要求时间复杂度为O(n),空间复杂度为O(1)。

我可以使用一个长度为256的布尔数组来判断每个字符是否出现过。具体实现方式是,对于字符串中每个字符,将其转化为对应的 ASCII 码,然后将布尔数组中对应的位置标记为true。如果发现某个字符已经被标记为true,则说明该字符已经出现过,即有重复字符。

我在40分钟内解决了这道编程题,面试官对我的思路和代码都给予了肯定。

面试总结

面试的整个过程非常流畅,面试官非常友好和专业。他们对我的答案和解决方案都给予了积极的反馈和建议。在面试前我做了充足的准备,这帮助我在面试中更加自信和放松。

总的来说,HashedIn是一家非常专业和有趣的公司。他们重视技术和工程师的职业生涯发展,给我留下了深刻的印象。