微软正式批C+AI上海面经(一二三面)
3月8日更新,收到offer邮件
昨天的一面:
面试官上来英文自我介绍了自己和自己的部分,然后让英文自我介绍。接下来是两个简单的问题
1、项目中用到的tensorflow和opencv,怎么用的?
2、为什么选择学习java,为什么喜欢java,部分主要用到c#,是否愿意学习新语言?
做题环节(由于teams出了点问题,面试官主动说中文了,然后后面都是中文了),
后来查到是力扣的一道题,钻了快20分钟牛角尖,想用O(n)复杂度解,结果没想出来,面试官小哥让我能写出来就行,然后就暴力解了。
常规的反问环节,我问的啥问题不记得了,最后面试官问是不是在江湾校区,才发现原来是师兄🤣
#微软暑期实习春招##面经##微软#1542. 找出最长的超赞子字符串
难度困难58
给你一个字符串 s 。请返回 s 中最长的 超赞子字符串 的长度。
「超赞子字符串」需满足满足下述两个条件:
- 该字符串是 s 的一个非空子字符串
- 进行任意次数的字符交换后,该字符串可以变成一个回文字符串
今天二面:
这次全程英文面,还是常规的面试官自我介绍,让我自我介绍以及介绍项目,然后还是一些比较简单的问题:
1、平常主要使用什么语言? 答:java、python
2、熟不熟悉数据库?答:有过mysql,redis使用经验,但原理不是很熟悉
然后开始做题,这道题目后来没在力扣找到,大概是这个意思:
有M个人(0->m-1)和N组对话conversations,每组对话是一个长度为M的一维数组,conversion[i]=1表示第i个人参与了这个对话
对于同一个人在不同对话的情况,需要把它们所在的对话的所有人放到同一个会议室中,求保证所有对话正常进行最多能够分出来的
会议室数量。
比如M=5,N=3
conversations=[[1,0,0,0,1],[0,1,0,0,1],[0,0,1,1,0]],最多能分2个会议室,前两个对话一个会议室,最后一个对话一个会议室。
用HashSet + 二进制状态写的,写完后有一个歧义的地方是,如果n=0,我的解法输出是0,但也可以理解成没有对话可以一人一个会议室,也就是输出M,
不过面试官表示按我的理解也可以。
做完题才过了半个小时,本来以为会再甩一题,不过没想到面试官直接让我问他问题🤣,我问了下他们部门主要做的什么,对于没有C#学习经验应该怎么办,
问完后就剩5分钟了,感觉大家都没啥说的了,就直接结束面试了
2-25新鲜出炉的三面:
这次是一位女面试官,而且是中文面,首先面试官详细介绍了一下team的工作内容,然后让我自我介绍,我问中文还是英文,她说都可以,中文说就行。
然后问了一会儿项目相关的问题:
1、大概介绍一下项目,然后你主要负责做什么工作。
我大概说了一下,然后提到了数据集处理、算法实现的一些内容。
2、讲一下你数据集处理的过程,以及你提到的常见的数据集处理和预处理方式?
这我熟啊,balabala扯了半天
然后面试官说,那我们来做一道简单的测试吧,写一下斐波那契数列,至少两种方式.
(万万没想到,昨晚复习一晚上mid和hard题,今天给我来这个),直接无脑写,然后让我测试一下两种方法结果是否一样,然后我写了一个数组测试。
面试官问:你的测试虽然能够说明算法的正确性,但是还有些其他的问题需要考虑,你能够想到吗,比如你的测试属于白盒测试,你能够写一种黑盒测试吗?我实在想不到什么意思,然后在两个函数上都加了对于n<=0情况的处理,
但是不理解她说的“其他的测试方法”指的什么,然后我直接说我想不到其他的测试方法了,其实你函数中已经写了对于n<=0的处理,惯性思维你认为斐波那契数列的输入一定是正整数,但是测试的时候不应该这么考虑。好吧,没想到她指的是这一点。
这个时候正好过去半小时,本来以为会再甩一题,没想到面试官来了一句,我相信我的同事们之前已经考察过算法题了(确实),那么我们今天就到这里结束吧。
怎么也没想到三面反而是最顺利的,就这样半小时结束了🤣。