Skip to the content.

微软

2月2日 一面试 

结束这一轮面试之后我感觉我无了,因为最后一题卡了差不多得用半个小时。结果吃完饭后又收到了约第二轮面试的时间,就突然感到又有了希望。

2月5日 第二轮面试

整轮面试不到半小时。面试完一整天也没收到邮件什么的。不知道是当场放假了还是无了。

2月18日

凉凉。

阿里

测评

笔试

面试

米哈游

笔试

  1. 1807

    输入一个字符串,求最长的包含且只包含1807这四个字符且按1→8→0→7顺序的子串的长度。

    我一开始想的是$O(n^2)$的动态规划。后来发现不太对,就直接改成用一个字典来分别计算以1、8、0、7结尾的最长子串的长度,一次遍历$O(n)$。

  2. 【C、C++、C# 限定】牛牛的游戏俱乐部

    有$n$个游戏,每个游戏需要1单位时间来完成。第$i$个游戏必须在$t_i$时间或之前完成,完成则获得$w_i$分,没完成则扣除$w_i$分。求最大获分。

    我的想法是用一个字典来储存每个时间段的所有游戏分数。然后每个时间段取最大值减去所有剩下的值得出答案。然而语言成了我最大的障碍,特别是我平常用惯Python,各种变量类型声明整得我头大。

  3. 平衡数

    求$[L,R]$区间内奇数位和等于偶数位和的数的个数。

    由于上一题语言问题卡了许久,这题我就只写了个暴力解,通过13.33%。

  4. 中序遍历

    字符串$A(B(C,),D(,E))$表示二叉树

    tree1。

    求这类字符串表示的二叉树的中序遍历。

    结合用栈实现树的遍历。节点值按顺序入栈,空值也入栈。遇到逗号弹出两次,遇到右括号弹出一次。弹出顺序去掉空值即答案。

  5. 是否凸多边形

    给定$n$个点坐标,按顺序连成一个多边形,求该多边形是否凸多边形。

    提示:对于一个多边形的任意边,若所有不在该边的点都在该边所在的直线的同一侧,则该多边形为凸多边形。

    对于任意边的两点$(x_1,y_1)(x_2,y_2)$,用直线的两点式表示该边所在直线

    \[\frac{x-x_1}{x_1-x_2}=\frac{y-y_1}{y_1-y_2}\]

    对于其余点$(x_i,y_i)$分别代入该式的$x$、$y$,若均为大于或小于,则都在同一侧,即该多边形为凸多边形。

面试

一开始就直接开门见山问问题,没有自我介绍,也没有问做了什么项目、项目做了啥。

上来就先问对C、C++、C#熟悉吗,学校有教吗。我说我们学校基本不教语言,就教理论、算法,语言基本靠自学,C#会比较熟。然后我说我很久没用这几门语言了,所以可能会比较生疏。

见我说我C#比较熟,于是他就问了些C#的问题。比如值类型和引用类型、ref和out、重载和重写等。然后又穿插了一些C和C++的,比如C的malloc和C++的new的区别等。然后见我Python比较熟又问了些Python的问题,比如list和tuple、修饰器的原理和作用等。

然后到算法部分。问了下排序算法有哪些、队列和栈、深搜和广搜、树的遍历、红黑树之类的。还问了些面向对象的特性和原则、多态、继承之类的。

最后就问玩过什么游戏,游戏引擎了解多少。然后就结束了,大概二十来分钟。

过了三天,就收到了感谢信。



Comments