微软STCA一面+三面

2.28 一面:
一道简单数据结构

3.4 三面:
全程中文;给我的感觉有点像压力面,整个过程中面试官不怎么会表示赞同,而是一直提出问题。
20min项目。问得很深。最后问到了知识边界没答上来。
做题:去除数组中重复的元素。
clarify:
1. 数组是裸的,并非vector。但是会传入数组的正确长度。
2. 元素32位int。
3. 数组未排序。
4. 原地去重。返回去重后数组的长度。

设计函数签名:int removeDuplicates(int[] a, int n)
版本1:
写了一个哈希set,数组塞进去。最后将hashset里的元素拷贝回去。
面试官:塞到set再拷贝回去太慢了,优化一下时间。
版本2:
哈希set维护遍历过的元素。双指针原地删除。
面试官:我不想要额外空间。
然后卡住了。一直在思考一个时间复杂度O(n),空间复杂度O(1)的解法。
求hint之后和面试官提出的可能方案:
1. 原地哈希。但会改变数组元素,否决。
2. 用bitset压缩额外空间的常数。但空间仍不是O(1),否决。
然后就到时间了。面试官说你可以offline再想想。

思考:似乎空间O(1)只能靠牺牲时间复杂度来做。网上似乎也没什么好的方法,我目前只能想到每次check的时候暴力遍历所有已经看到的数。这样空间O(1)时间O(n^2)。但当时根本没往暴力去想。

总结:
今天面完之后很难受。说实话还是很想去微软的。在床上躺了几个小时。
学校的事很多还没干,国内的厂还没投。我的春招才刚刚开始。
就当作一次历练吧。不管发生了什么,life still goes on。
#实习经验分享##微软##面经#
全部评论
这个和我三面同一道题啊
点赞 回复 分享
发布于 2022-03-05 15:49
我三面是两个数组 每个元素对应的分数高低是否一致 写的是nlogn 前面问了很多数据库索引 还有虚函数之类的 问的我开始怀疑自己了
点赞 回复 分享
发布于 2022-03-04 23:25
您好,一面后,没有其他消息是不是就是直接进行二面?
点赞 回复 分享
发布于 2022-03-04 22:07
和我面试官很像,不怎么说话,全程你问我答,算法题上来一道困难题加一道设计题,祝好运😌
点赞 回复 分享
发布于 2022-03-04 17:46

相关推荐

评论
5
40
分享

创作者周榜

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