旷视科技面经

我是面的开发岗位 主要的语言是c++和python

一面

上午10点电话面试。
上来先是自我介绍,大概说一下学校,本硕的情况,接着是当前做过的项目和学习的技术。
接着问算法题:
第一题:给出一些整数区间的无序集合,如何将这些集合进行合并,最后返回合并到不能在合并的区间集合。这道题目比较的简单就是贪心,先对集合当中的区间按照起点进行排序,之后一遍扫描就可以解决。
第二道题目:给出一个n+2个元素构成的数组,其中所有的元素都在1-n之间,找出重复的那两个元素,最快且使用最少的空间。这道题就是LeetCode上的原题,也是非常的简单,就是使用数组的下标当做桶遍历的时候将元素对应位置的值,如果为正,置为其原来值的相反数这样在遍历到负数的时候就知道该位置的值出现过了就可以判断出其下标是重复出现的元素。o(n)的时间,o(1)的空间。
算法题我答得比较好,接下来就是一些基础知识的问答,主要问的是c++方面的:

  • 虚函数是什么原理,c++是如何实现多态的。
  • 有没有用过智能指针,智能指针的原理和作用。
  • STL当中的容器用过哪些,了解哪些都是什么作用大概说下。
  • 知道哈希函数么,STL当中那个容器是哈希实现的哪个是红黑树实现的,具体的复杂度是多少。
  • 给你一个对象你只知道他的类型,你也知道这个类型只有一个方法,但是你不知道这个方法的名称,你该怎么调用这个方法?
  • 析构函数可以是虚函数么?为什么要将析构函数设为虚函数,可以将所有的析构函数设置为虚函数么?

记得的基本就是这些问题,全部回答出来了,面试官也比较满意,感觉很亲切,接着就是说让我问他有什么问题。我就问了问南京这边旷视科技主要的是在做什么,当前的规模和实习大概的工作是什么。然后就是说马上接着2面。

2面

上午11点电话mianshi面试。
上来还是自我介绍,然后开始问我有没有做过算法方面相关的工作。我回答有做过深度学习方面的项目然后开始问我一些简单的基础知识,可能因为旷视科技这里的开发岗位一般百分之20的时间也需要做算法方面的工作所以也会考察一些算法的基础知识。

  • 用过哪些机器学习,深度学习的框架或者算法
  • 过拟合是什么,过拟合怎么办
  • 正则化作用是什么,L1,L2的区别
  • 说说你用的框架大概的组成
  • K-means和KNN的区别
  • 使用过堆么,堆的复杂度,作用

然后又问了算法题:
第一题:K路归并,给出K个有序的数组现在将其归并成一个有序数组怎么做最快。
我回答使用堆,堆的大小为k,每次进入一个出去一个维持这个堆就可以达到o(nlogk)的时间复杂度。面试官很满意。
第二题:还是给出一个n+2个元素构成的数组,其中所有的元素都在1-n之间,找出重复的那两个元素这个题目可能运气好两个面试官问到了一个一样的题目。
第三题:股票问题。给出一个股票每日价格的数组,求一次买卖的最大收益,二次买卖的最大收益,不限次数的最大收益。
算法题的回答很好综合起来面试官给出的评价是很不错的。然后还是问我有什么问题问他,然后问我实习时间,希望我的时间可以久一点之类的。然后由于聊的很好还留了微信。

之后接到hr的电话说面试的结果不错,然后约周一上午去南京旷视科技和部门的leader进行最后的沟通确定offer。

终面

上午11点到公司,然后在会议室等了一会,部门leader带着电脑进来,先问我有没有带简历。。。。没带
也没通知要带,而且看起开他们的终面也一开始没有准备我的信息。一开始就有点小尴尬,全称面试官不苟言笑,感觉冷冷的,也都没有问道任何的技术问题,主要是问我实习的时间和想法,有没有别的公司的offer之类的,然后让我问他问题,我问的问题之后他还反问我对这个问题怎么看,就感觉非常的敷衍,有种强行怼人的感觉,和之前的面试官的感觉就完全的不一样。最后15分钟也就面完了。

可能终面就是想确定我的意愿是不是想在这里长期实习吧,主要我的时间有点问题,中途有一两个月的时间有事情所以可能是这个原因导致终面的早早结束?但是总体的感觉还是发挥的挺好的,一些问题的回答和面试的结果都还不错。现在在等旷视科技的消息。应该是不会给我发offer,以后继续总结吧,总之以后现场面试的时候还是得自己带简历,以防这些面试官自己没有任何准备呀。