三面面试官都很有耐心,态度非常好,点赞~
不过三面全部搞完,还是很累的。
第一面
上来问了我操作系统有关的东西,坦诚的说不了解,气氛有些尴尬...
c++问了智能指针的作用,是否线程安全,lambda表达式的作用。
然后简单问了项目的事情,挑一个觉得做的比较好的讲一讲。
算法题:
1 给定一个等差数列,但是中间缺了一个数字,找出这个数字。上来想都没想直接遍历了,写完面试官提示有没有更快的方法,想到了能用二分,也顺利写出来了。问了复杂度。
2 m*n网格,从左上角到右下角,只能向右或者下走,总共有几种走法,很基础的动态规划题目,中间竟然因为把一个i写成了j耽误了几分钟...。
算法题做完后问了之后认为能够在自动驾驶方面改进的方向。
第二面
跟一面差不多,c++方面问了智能指针,std;;move的作用,类内是否要重载move(没答上来),然后聊了项目。
算法题:给定一个排序数组,返回里面值跟下标相等的元素。第一次写的是用二分,找到一个满足要求的元素,然后左右扩展找到左右边界。然后面试官提示这样是不是也太复杂,能否直接找到左右边界。恍然大悟,边界可以直接二分找到,也写出来了。
第三面
面试官一边看简历一边问项目相关的事情,详细讲了讲用到的方法。问了一个cpp问题:char a = 0xef;问a==0xef是不是真,这个问题应该是超过char的范围?可惜当时没说上来...
算法题:判断一个二叉树是不是错误的,即某节点的子节点指向了错误的节点。思路就是一个层序遍历,将遍历过的节点存放在哈希表中,如果遍历过程中发现哈希表已经存在这个节点,说明二叉树不正确,写完后问了复杂度是多少。期间还问了为什么用unordered_set,为什么不用set,两者原理和复杂度有什么差别。
总体来说三面的算法题都比较简单,面试官态度也都很好,可惜自己菜,有些问题确实不会...
全部评论
(4) 回帖