一面
视频面,下午3点开始,时间45分钟。
第一次用牛客的系统,本来提前进去了,等到时间了发现面试官一直没进来;然后面试官给我打了电话,问我知不知道现在面试,尴尬😅。
之后把那个界面刷新一下就好了。
首先是自我介绍,介绍差不多,面试官说可以了,简历已经看完了。
然后直接开始做题,一共两道算法题。
算法部分
第一题
用两个栈实现队列
剑指offer原题,AcWing上的第20题。
思路就是一个栈用来实现入队,另一个栈来实现出队。
不要求跑通,边写边讲思路,很快就写出来了。
第二题
acwing1612. 最大正方形
一开始没什么思路,后来面试官提示,先考虑一维的情况;
一维的时候就是 Leetcode45 最大连续1的个数
想到用动态规划的方法来解;然后类推到二维的情况,最后面试官就让把状态转移方程写出来就好。
基础知识
TCP和UDP
进程、线程、协程这些
最后问机器学习的模型如何判断其性能。讲到了交叉熵和AUC。
一面结束后不到一小时,hr来商量二面的时间,让我多准备一下CS基础和机器学习基础,可能是自己在这部分答得确实不太好。
二面
还是牛客网的视频面。
先自我介绍,然后做题。
算法部分
有序数组的平方
一道leetcode的简单题, 997.有序数组的平方
加了一个不能重复的条件。
首先给出了简单粗暴的哈希表去重+排序的方法;
然后指出这个方法没有用到原本的数组就是有序的这个性质,可以用二分找到第一个大于等于0的位置,然后对左右两边分别处理;写了二分的代码;
面试官问我有没有不用二分的方法,当时没转过来弯,其实可以直接双指针来着。
相当于是两个有序数组的合并;
两个有序数组求交集
可能是看我没转过来双指针的弯,进一步提示。
给出了双指针的思路以及代码。
m个有序数组求交集
我给了两个思路:一种是先求前两个的交集,然后求交集与下个数组的交集,以此类推;
还有一种是设置m个指针指向这m个数组,每次最大的那一个(或几个)指针不动,其他指针右移。
面试官主要让我写了第二种思路的代码,然后分析复杂度。
其他问题
卷积有几种padding方法?
resNet解决了什么问题?
为什么会出现梯度消失或梯度爆炸?
梯度消失或梯度爆炸还有什么其他的方法可以解决?
算法岗?
+1
学习了
学习!!!