深信服一面加二面面经
一面:
项目相关,挖的特别深。
有限状态自动机在项目中是如何实现的(我项目里用到了这个)
如何对项目进行优化(我回答了使用工厂模式和单例模式)
笔试中的两道编程题,一道思维填空题。(我忘记啥题了,看了遍题目后重新想了下解题思路)
接下来全都是数据结构了。
红黑树是否了解(我说了红黑树的特点,和b树,b+树做了对比)
单链表,双向链表特点,如何删除节点,删除效率。(单链表需要考虑到不知道前驱节点的情况下需要从头遍历,时间O(n))
最小生成树(这个忘了,问了下面试官,说是图相关,我就说了图的深度优先遍历,问我如何保证最小,我说不会)
哈希表底层原理(其他语言的不清楚,我说了Java中的长度8转红黑树,长度6回归链表,分析为啥相差2)
手写二分查找,问如果数据很大的情况下会不会溢出。答会溢出,把加改成减就行。
反问环节,问啥忘了。
一面结束。
二面:
项目相关,面试官尽力往深了挖,可惜我的另外一个项目是标准的CRUD项目,面试官应该没搞过Java,也没啥能问的地方。我就只能说下转分布式项目的构思,问了下具体实现。说到优化时, 说了一下负载均衡算法以及缓存机制。可惜面试官应该没搞过这个,没问太深。
然后就是两道思维题。
一道是5升水壶和6升水壶,问如何获得三升水。说了两个解决方法,但都借助了其他假设,没到点子上。
另一个是25个人,5条跑道。问几次可以得到前三名。
反问环节,问啥忘了。
二面结束。
二面完后让我回去等通知,问了下一楼小哥,果然挂了。
#面经#