您的位置:首页 > 其它

小米智能云-秋招转正面经

2017-09-24 23:32 106 查看
我所在的组是小米智能云平台,主要是做云存储相关的工作。主要还是跟着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个丑数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  小米 面经