前言:
这是我第一次面试,找的内推算法岗,最近看了几天面经 结果和面的完全不一样。。
深信服主要算法需求是字符串这一块,KMP,AC自动机之类的,我也是看了几天,结果没问。
第一题
树的直径有哪些解法
两次dfs和树形dp,讲了一下树形dp的思路
因为我的简历写的比较少,所以面试官问我一些个人信息和擅长哪方面。
我说:ACM大一下打到大三,然后去考研。dp写的多一点,还有思维之类的。
第二题
cf的D题,n个数的数组,有正有负,问区间和小于x的有多少。
我只想到了O(n²),面试官提示用树状数组或者线段树。
每次加入树状数组时,查询一下 x - 当前数的数量。
第三题
面试官:看你考研,问道考研题
如何判断一个链表是否有环
搜的时候存走过的点,有重复得就有环
面试官问能不能优化一下空间,我没想出来
结果是用快慢指针
这里就有点尴尬了,面试官似乎是想送我分的,结果我没答出来
我只能无奈的说我数据结构只考一道大题
面试官问我除了dp和思维还有啥会的吗
我有点不知道怎么说 而且过了很久几乎都忘了,就说了些基础课学的,最短路、数学基础、贪心、搜索
第四题
树的次长路,就是除了树的直径之外最长的一条怎么求。
第一题加了一点难度。多加一维f[i][j]存的是到第i个点的第j大的值。j只需要取到2就行,即存每个点所在子树的最大值和次大值。然后一直做到根节点就行。
面试官:题目就问到这里了,这些题也算比较简单的。。。
最后问了我一些个人情况,问我对公司有没有什么问题。
就结束了。
总结:面试官挺好的,比较有耐心,很多简单题都答得不太好,面试官都硬送我分了 我拿不到。
第一次也没什么经验,准备的也比较少,主要就是看的面经,但是这次都没问 等于是裸考。他是看我简历然后问的问题,因为我就写了会基础算法和数据结构,他后面就问我有什么具体会的算法吗。最后还是给了个dp收尾。
需要改进的一些问题:简历写的更清晰一些,具体可以说下哪些是自己会的。提前多准备一些内容,让自己说的时候不会无话可说。平常怕面试官问不会的内容,这次的面试官真的是看你会啥就问你啥,可惜自己没把握住 被自己菜哭了。
总算是个正常的计算机算法了点赞 … 算法这个词感觉被用的太泛了