首页 > 微软苏州暑期实习一二面
头像
hooa
编辑于 2020-05-12 05:42
+ 关注

微软苏州暑期实习一二面

一面2020年4月13日
自我介绍
算法题:实现一个类似于整数流的类,每次调用next()方法时会传进去一个数字,并返回最近传进去的三个数的平均值。要求只能使用数组实现。
stream.next(4); //return 4
stream.next(6); // return 5
stream.next(2);// return 4
stream.next(1); // return 3
使用循环数组来实现一个队列,记录一下开始结束位置,并用一个sum来存当前的和,这样可以做到时间复杂度为O(1)。
数学题:现在有一个M*N的点阵,问从左下角走到右上角的最短路径一共有多少条。只能上下左右移动。没有障碍。
我答的dp,面试官说没有问题,不过不需要那么麻烦,应该是Cm+n-2 n-1条路径。最短路径只能向右向上走,而最短路径的长度一定为m+n-1所以可能的选择就是从这些可能性中选出那些向上或向下走的路径。

二面2020年4月29日
讲项目(竟然没有自我介绍)
算法题:给一个不含重复元素的数组,如果该数组满足下面两个条件中的任意一个,就返回true,否则返回false;
条件1:如果在该数组中可以找到两个数字使得交换这两个数字后的整个数组变为升序,那么该条件满足。
条件2:如果该数组中可以找到一个连续的子数组使得反转这个子数组后整个数组变为升序,那么该条件满足。
在面试官的引导下,先沟通了思路,最后算是写出来了,就是有点儿小bug,还有有些地方代码可读性较差。原因就是当时先写出来一部分发现逻辑不太对,就在原有的基础上加补丁,这样代码就会越改越乱。面试官也提到了这个问题,说如果写出来发现有些corner case没有覆盖到的话最好是把之前推翻了重新想一下,这样写出来的代码才会简洁明了。


更多模拟面试

全部评论

(6) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐