📜  微软 SDE-1 面试体验(诺伊达)(1)

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

微软 SDE-1 面试体验(诺伊达)

概述

在2021年初,我进行了微软SDE-1的面试,面试时间为4小时,由4个不同的面试官轮流进行。所有面试都是在线远程进行,面试过程非常严谨,需要在规定时间内回答问题,不能使用搜索引擎和外部资料。

面试流程
第一轮:算法和数据结构

第一轮的面试时间为1小时,面试官提供了3个算法问题, 所有问题都需要使用时间复杂度O(N)或O(NlogN)的解决方案,并且所有问题都需要在30分钟内完成。

  • 第一个问题:如何在数组中查找重复元素?
  • 第二个问题:如何在给定二叉树的迭代器中实现hasNext()next()方法?
  • 第三个问题:如何计算“K小数”?(即给定一个未排序的数组和一个数字k,找到数组中第k小的数)
第二轮:系统设计

第二轮的面试时间为1小时,面试官会要求你设计一个系统,包括架构、技术选择和流程。

我的系统设计问题是构建一个在线餐厅预订网站。我需要提供一个具有以下功能的网站:

  • 用户可以在网站上浏览所有可预订的餐馆。
  • 用户可以搜索和筛选餐馆。
  • 用户可以选择餐厅、日期、时间、人数和菜单,然后下订单。
  • 餐厅管理员可以通过网站接收订单并处理。
第三轮:代码审查

第三轮的面试时间为1小时,面试官会提供一些代码,并要求你对代码进行分析和修改。

我的代码审查问题是修复一个内存泄漏的问题。

第四轮:行为面试

第四轮的面试时间为1小时,面试官会询问与工作态度、职场沟通、决策等相关的问题。

我的面试官问了以下几个问题:

  • 你最喜欢的项目是什么?
  • 你如何处理和同事之间的分歧?
  • 你在职场中的一次失败是什么?你如何处理的?
总结

微软的SDE-1面试是一个严肃的过程,需要良好的准备和技术水平。我觉得整个面试过程是公平的、压力的,有时会感到很难,但在幸运的情况下,我通过了整个面试过程,成功进入了微软。