微软 FTE 面试体验 2019 |在校园
线上回合:
线上回合在mettl平台进行
1.简单的数组操作题
2. https://www.codechef.com/problems/ENCD12
3.简单的dp问题
团体飞轮:
字符串IN-PLACE 的运行长度编码
第一轮技术:
1. https://www.geeksforgeeks.org/connect-nodes-at-same-level/
2.他要求优化上述方案,即常数空间方案 https://www.geeksforgeeks.org/connect-nodes-at-same-level-with-o1-extra-space/
3.如果RAM大小为4GB,如果启动了4个大小为2GB的进程!会发生什么?(虚拟内存)
4.上述问题的继续。如果进程大小不受主内存大小的限制,那么它的限制是什么(逻辑地址空间)
5. 上面写的代码有 node->val ;端到端解释如何访问该内存位置
6、分页、页表、TLB;为什么分页?
7. 解释信号量、互斥量、自旋锁以及它们之间的区别
8. 如果 while(1) 连续运行会发生什么
技术第二轮:
1.关于二叉树的一些简单问题
2.添加两个链表,头指针指向数字的MSB位
https://www.geeksforgeeks.org/sum-of-two-linked-lists/
3.解释分页,页面替换算法
4.线程安全和线程不安全函数
5.继续上面的,如何将线程不安全函数转换为线程安全函数
提示:上面使用 rand() 和 rand_r() 进行了解释 -> rand() 的可重入版本;
6. DBMS 中的查询优化
7. DBMS 中的索引
技术第三轮 + 人力资源:
1. 最大子数组和问题(Kadane's Algorithm)
2. 给定一个 BST,找到第 k 个最大的元素
3. 给定一个包含 0 和其他数字的数组。重新排列数组 IN_PLACE 以使所有零都在前面而不改变其他数字的顺序
例如:i/p arr = { 6, 2, 0, 5, 8, 9, 0, 56, 78};
o/p arr = { 0, 0, 6, 2, 5, 8, 9, 56, 78 };
时间复杂度 O(n)
4. 给定一个大小为 n + m 的数组,其中前 n 个元素已排序,其余 m 个元素未排序;对整个数组进行排序 IN_PLACE !
最终判决:选中!
感谢 GeeksforGeeks 提供的所有精彩文章。