26秋招阿里健康后端二面
1.部门业务介绍+实习相关
2.智力题:16瓶水,1瓶有毒,1小时时间,找出14瓶没有毒的水。已知小白鼠喝完毒水后在1h内会死亡,求:找出14瓶无毒的水至少需要多少只小白鼠?
3.思路题:长度为n的数组,数字有正负,求下标连续的最大子数组和?说解题思路和算法思想即可。
4.场景题:有一段超大文本,需要统计其中每个单词的词频。请从单机内存可以存放、单机内存无法存放两种角度说说思路和使用到的数据结构。
5.追问:在多机情况下,你提到用分治和堆结构存储topN的词频,那存不存在一种情况:有一个单词不存在于任何一个单机的topN集合中,但其在多机中所有词频的总和可以进入到最终的topN集合中去?这种情况怎么解决?
6.哈希冲突是怎么避免的?java的哈希表是怎么避免的?为什么用红黑树?红黑树有哪些规则?你说AVL树的维护成本比红黑树高,为什么,可以举具体例子吗?
7.mysql索引失效有哪些场景?在什么场景下加与不加索引几乎没有区别?
8.mysql回表是什么?有什么影响?我们开发者在写sql的时候如何尽量避免?
9.mysql中的MVCC怎么实现的?你的项目里又是怎么简化实现的?你觉得你项目中的现有设计有什么缺陷?在多并发场景下会不会出现问题?
10.spring的声明式事务在什么场景会失效?你刚提到了事务传播机制,具体哪些事务传播机制会导致失效?
11.分布式事务了解多少?简单介绍一下saga?除了这个还了解其他的saga模式吗?
12.实习相关:具体的业务场景、研发方案、技术难点等
13.你觉得你成长以来最挫败或者最不知所措的一段时间是什么时候?当时发生了什么事情、你具体怎么做的?
14.你成长以来做的坚持最久的事情?中间会有觉得难的要放弃的时候吗?你怎么说服自己坚持下来的?