微软2022暑期实习研发岗 一二面凉经

2022-01-17 微软2022暑期实习研发岗 一面

是第一次实习面试,各方面都没有好好准备,结果果然很糟糕啊。。。

总体情况:

  • 总共大概55min
  • 没开摄像头(幸好没开,题目难的我在屏幕另一端抓耳挠腮)

整个面试流程如下:

1. 自我介绍

2. 提问环节:

  • 介绍自己在项目中负责的内容
  • 知识提问(如:堆和栈的区别;在浏览器输入一个url,讲讲会发生什么;三次握手是什么)

跟自我介绍时提到的内容关联性很高,自我介绍要谨慎!

3. 口述题目写代码:

  • 第一题,给出一个二叉搜索树,实现两个函数next和hasNext,next用于迭代到下一个结点,hasNext用于判断是否存在下一个结点(提示是使用迭代器,但我一直没get题目意思,尴尬请求进入下一题了……)
if(s.hasNext()) {       print(s.val)     
    s.Next() } //面试官给的大致框架 
  • 第二题,动态规划,有n块土地,土地有各自的***和售价,已知有m块钱,拿钱购买连续的土地,请问怎样可以获得最大的利润;写完后自行设计测试用例(尽量多),并讲述自己设计的思路

2022-01-18 微软2022暑期实习研发岗 二面

因为是第二天,没有自我介绍的环节,只有项目介绍和做题。

第一题: 找出两个无环链表的第一个公共节点,一开始想了一个空间复杂度O(n)的解决方法,面试官要求不用额外空间,因此最后采用了双指针的写法。
原题指路:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/

第二题: 第一题的升级版,如果有环且公共节点在环中,那么两个链表进入环的第一个节点都可以被视为公共节点;思考有哪几类情况,并设计相应的测试用例。

面试前的准备很重要!
#面试经验##面经##实习##微软#
全部评论
楼主是stca吗
点赞 回复 分享
发布于 2022-03-10 10:47
楼楼你好,第二题咱们两个可能是遇到了同一个面试官,我发的面经贴评论区有人给出了具体思路可以瞅一瞅😋
点赞 回复 分享
发布于 2022-03-02 17:47
想问一下动态规划那题您怎么做的
点赞 回复 分享
发布于 2022-03-02 00:27

相关推荐

1.自我介绍2.介绍一下mcp, skills3.了解react哪些状态管理库4.对话是sse还是什么?是用fetch还是EventSource?5.ts中的any 和 unknown讲一讲6.是直接用组件库的组件还是自己封装了一些别的7.代码输出题1function main() {{var a = 1let b = 2}console.log(a);console.log(b);}main()console.log(a);8.什么是块级作用域 全局作用域 函数作用域9.代码输出题2for (var i = 0;i < 5;i++) {setTimeout(() => {console.log(i);}, 100);}10.代码输出题3for (var i = 0; i < 5; i++){function printText(temp) {setTimeout(() => {console.log(temp);}, 100);}printText(i)}11.代码输出题4for(var i = 0;i < 5;i++){function printText(temp) {var temp = isetTimeout(() => {console.log(temp);}, 100);}printText(i)}12.代码输出题5for(var i = 0;i < 5;i++){function printText(temp) {setTimeout(() => {var temp = iconsole.log(temp);}, 100);}printText(i)}13.点击控制台输出题export default function App() {const [count, setCount] = useState(0)console.log('render',count)return (<div><h1>{count}</h1>{setCount(count + 1)setTimeout(() => console.log('setTimeout', count), 1000)}}>+1</div>)}//这个组件点击按钮后,控制台的输出顺序和值如下:// 1. render 1 (组件重新渲染, count 更新为 1)// 2. setTimeout 0 (1秒后输出,注意这里是 0 而不是 1)14.算法:给有序数组arr = [-4, -1, 0, 3, 5],返回平方后的排序// 有序数组平方后排序const arr = [-4, -1, 0, 3, 5]function solution(arr) {const len = arr.lengthconst result = new Array(len)let left = 0let right = len - 1let index = len - 1while (left <= right) {if (arr[left] * arr[left] > arr[right] * arr[right]) {result[index] = arr[left] * arr[left]left++} else {result[index] = arr[right] * arr[right]right--}index--}return result}console.log(solution(arr));15.反问
查看14道真题和解析
点赞 评论 收藏
分享
评论
5
31
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务