微软面试题刷题9/1


发现好像在牛客分想面经好像会有offer加成,我也来发一下,顺便许愿可以进微软呀!

一二面是平行面(虽然面试官说内部并没有这个叫法……)

一面

  1. 自我介绍

  2. 你觉得情感分析方向的难点在哪

  3. 介绍一下数学建模的工作

  4. 写题:扑克牌打乱顺序,要求空间O(1)

洗牌算法:

54张牌,再[0,54)随机产生一个随机数,与最后一个数交换。这个数已经被放到正确位置。这个数被选中的概率是1/54

从前53个数中,选取一个数与第53个数交换,这个数的概率是53/54*1/53 = 1/54 (上一次没中,这一轮选中)

同理这样,最后每个数被选中的概率都是1/54, 这样就完成了洗牌操作。

  1. 了解动态链接库和静态链接库吗?了解虚函数么?

两种库
一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。

一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。

(所以无论是动态链接库还是静态链接库,都会有lib文件)

两种链接方式
动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL中函数的可执行代码所需的信息。
静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。

  1. 假如我有一个exe,这个exe是根据一个cpp文件得到的,cpp文件里面有一个main函数,main里面有一句print函数,main函数之前会有一些变量,说一下从我的鼠标点击运行开始到这个main的return之后的全部过程。

  1. 写题:链表深拷贝(可能有环,可能无环)

先拷贝一份节点,再拷贝一份连接。

  1. 反问

二面:

  1. 自我介绍(英文)

  2. 你的project中代码量多少(英文)

  3. 写题:给定一个sorted array,整型,要求输出缺失的数字。比如输入[5,6,7,11,13],输出8,9,10,12

类似Leetcode163

O(n)空间,HashMap,BitMap

O(1)空间,双指针

  1. 反问

三面:

  1. 自我介绍

  2. 聊项目

  3. 说一个机器学习算法吧(说了决策树)说一下决策树的构建过程

  4. 做题:剑指offer 46,输出是所有的可生成的字符串,但是a是对应的1,所以要考虑字符串以0开头和连续两个0的情况

(输出方案数是dp,输出方案是回溯)

  1. 做题:判断一个输入字符串是不是有效的ipv4地址

这里要和面试管沟通好各种边界情况,建议用Python加split实现,

  1. 设计:假设我现在要设计一个扫雷程序,你觉得你要怎么设计?就是假如你要设计类要设计几个,分别有什么功能?

  1. 反问

  2. 你随便说一分钟英语吧,说什么都行

面试的感受就是确实微软比较看重做题能力,而且很多题都是重复的出,可以预先在网上找找面经。

许愿!

前几天发了个询问一二面后没收到消息的帖子,给大家整理一下我能记住的题目,但我貌似凉了,大家加油。

一面

旋转矩阵    (首先沿着45°翻转,对应一个矩阵转置,然后再按列交换)

类似于lc的骑士拨号   (Leetcode935 动态规划,转移方程)

二面

查找数组中能包含数组中所有元素的最小子数组长度(第一道题变形后的,但第一道题咋问的我忘了)   双指针滑动窗口

还问了一下项目和测试的小问题,主要还是算法题。

猜你喜欢

转载自blog.csdn.net/wwxy1995/article/details/108349009
今日推荐