我所在的组是小米智能云平台,主要是做云存储相关的工作。主要还是跟着Team里面各个大牛学习。
转正面试,目前经过了3轮,不知道会不会有更多轮次的面试。
一面面试官云平台六期五层的帅气的工程师:
1,详细问了在组里做了什么,具体怎么做的。然后,手写关键部分。
第一个任务,项目需求:
1)拥有记录ip地址的log,点分十进制ip;每条记录对应一个待查找归属地的ip地址
2)拥有ip库,ip库里面的每一条记录对应某个国家某省市的ip地址,记录如:<起始ip地址,结束ip地址,国家,省,地区>
3)问题:如何根据log记录,统计出各个国家的ip地址出现的次数。
解决方案:
1)直接处理ip库,把ip库里的地址以国家为划分,聚合同一个国家的起始ip地址和结束地址,放入hashmap和araylist
hashmap<起始ip地址,pair<结束ip地址,国家>>
arraylist<起始ip地址>
2)对arraylist<起始ip地址> 进行排序,然后,把待查找的ip地址进行 arraylist.binarySearch(待查找的ip),然后:
i)获取角标为正,则待查找的ip地址是hashmap的键,所以,可以获得 国家字段
ii)获取角标为负,则我们可以获得该ip应该插入到arraylist里面的位置,前一个位置,则是hashmap里面的键,可以获取国家字段
2,手写二分查找
3,jvm 怎么报 OOM
4,手写代码实现一个concurrentHashMap数据结构
5,多线程的一些知识
二面面试官是部门里的大佬:
1,项目
2,简述组里面数据的加解密方案
3,TCP三次握手和四次挥手
4,在TCP链路理想的情况下,把一个2M的数据包,通过a)一次全部发送出去 b)分两次发送出去 那种情况消耗的时间少。(答案:考虑滑动窗口)
5,剑指offer原题 包含max函数的栈
6,其他记不清楚了
三面面试官是搜索与推荐组的漂亮小姐姐:
1,java基础知识
2,判断 二分查找树
3,单链表求和。有两个链表如下:
链表1:2 -> 3 -> 2 -> 6 -> 8
链表2: 4-> 8 -> 5
根据链表可以获取两个整数 23268, 和 485,然后,求和。结果是( 23268 + 485 = ) 23753
4,寻找第N个丑数
592

被折叠的 条评论
为什么被折叠?



