自我介绍(今天临时赶的三百字介绍,主要讲实习经历,其他全带过)
然后问实习经历,在公司主要做什么
接着问简历,项目用到了redis,之前我准备了redis集群,特点,缓存穿透等
结果被问到的是 redis哈希的底层数据结构是什么 如果哈希里有重复的key怎么办 为什么要rehash
问了简历上另一个项目,我介绍了一遍,因为之前保研自我介绍的时候准备过,所以背得挺好
因为我提到了NEO4J,所以问了如何找到两点之间的最短路径,我只想到了迪杰斯特拉
接着就写代码
第一题是让我说思路 题目是判断点是否在凸多边形里 其中多边形的每个点坐标都按顺序给出来了
我想了半天 想到画一个射线 然后对每条边求交点 但时间复杂度是O(n)
面试官提到有O(logn)的方法 我实在没想出来 他就说先一直二分 最后把问题转换成判断点在直线的哪一侧 这就要用叉乘来判断是顺时针还是逆时针的
第二题是反转链表 直接用头插入法解决
第三题是求树最大深度 我直接用递归 一开始差点翻车后来检查了一下改好了
面试官说递归复杂度太高,应该用栈,我就讲了下深度优先遍历的思路
反问
我问工作内容(想知道现在什么算风口) 工作强度
感觉他们组还挺累的 时不时有ddl 但期待二面
#我的实习求职记录##面经#