小米科技面试全过程

一面(60min左右)
       我是请学长内推的小米机器学习算法岗,一面面试官还是根据我的简历和我聊了会本科到研究生的个人经历,包括保研,成绩,比赛,实践经验都很详细的问了。
      确定好聊天的氛围以后,开始问我做的一些项目,我具体解释了项目的背景还有重要技术点,偶尔面试官会根据我说的插问一点东西,基本都是我口述为主,整个过程主动权还是把握在自己手上。
      这样这个过程大约持续了30多分钟, 然后面试先问算法基础,从基本排序算法的时间复杂度和空间复杂度起,再具体聊了快排,包括他的实现过程和实用范围,还给我出了一个算法题,求中位数,我答先排序再查找。接下来,问了一个dp的算法,原型是求最大子串和,这个没答太全。
     问了算法基础以后,接下来问的是语言层面的东西,问我都会哪些语言,我说了cpp和JAVA,然后问我最近用的比较多的是什么语言。我答的JAVA,然后他问了内存管理算法(分代管理),还有spring里面的控制反转,还有JAVA可不可以实现多继承等等,语言问的比较简单。最后根据我的岗位聊了机器学习的算法,问我最新的深度学习框架,CNN和DBN,以及他们之间的区别,最后问了决策树算法,包括属性选择的算法和剪枝的过程,最后聊了会聚类算法,到了一个小时他就没问我问题了,让我自己问,我问了他们部门的业务以及实习生什么时候要求入职等问题。

二面(20min 30min)
20min全部问机器学习的东西,包括bp算法,cart树,kmeans,LVG和xgboost等等,还聊了聊JAVA设计模式,不过他看我不太了解也说的不多,主要还是机器学习的东西。后面30min在线要我写代码,题目是堆排序的实现,我写了20min左右,然后他点评了一下,就结束了。完了他说过几天有人会联系我的。这样,周六面试结束,周一收到offer。

总之,小米问的范围比较广阔,涉及语言和算法还有项目,还有代码能力也有一定考察。要想进去,综合能力要过关,总的来说面试官人很好,不会对你不懂的问题揪着不放,主要考察你知道的知识点的深入程度。这就是我的面试经历,祝大家春招顺利,早日拿到offer。#算法工程师##小米##Java工程师#
全部评论
请问是实习生岗位还是应届生?小米一共就两轮面试吗?有HR面吗?
点赞 回复 分享
发布于 2018-04-04 20:45
有问深度学习的算法嘛?
点赞 回复 分享
发布于 2018-04-04 21:09
看到了,不好意思
点赞 回复 分享
发布于 2018-04-04 21:10
邓总牛逼
点赞 回复 分享
发布于 2018-04-04 21:19
是暑期实习吗
点赞 回复 分享
发布于 2018-04-04 22:09
楼主,请问一面和二面隔了多久,同算法岗,一面至今无消息。。。
点赞 回复 分享
发布于 2018-04-07 23:48
想问一下二轮面试后大概过了多久出的结果啊
点赞 回复 分享
发布于 2018-04-25 17:13

相关推荐

10-15 21:30
已编辑
清华大学 Python
考120分钟,有30道选择题(25单选,5多选),2道编程。第一题:最大的乘积题目描述给定四个正整数a,b,c,d, 你可以进行若干次操作,每次操作可以从a,b,c,d中选择一个,然后令这个数加1,求操作后这四个正整数的乘积 a*b*c*d 的最大值。输入描述输入包含多组测试数据。输入第一行包含一个正整数T(1≤T≤100),表示测试数据的数量。接下来T行,每行四个正整数,包含a,b,c,d(1≤a,b,c,d≤20)四个数。输出描述对于每组测试数据输出一行一个整数,表示操作后这四个正整数的乘积 a*b*c*d 的最大值。样例输入21 2 3 41 2 1 3样例输出7224第二题:最大子段和...
他说他是自愿的:第一题优先队列,题目给的很小,最多就操作100次,优先队列不断拎出来最小的元素+1再放回去,最后相乘就是答案。第二题动态规划,力扣53最大子数组和的那道题,2个数组存从左往右和从右往左以i结尾的连续子数组的最大值,2个子数组算从左往右前i个元素和的最大值和从右往左前i个元素的最大值,然后for循环左边最大值取一段,空k个元素右边最大值取一段,不断把左右最大值相加比较就能得到全局最大。感觉这题还好,之前被小红书拷打了两次给我整不自信了。
投递百度等公司10个岗位 >
点赞 评论 收藏
分享
1. C++中的引用是什么?与指针有什么区别?2. 什么是RAII?它的优势是什么?3. C++中的const和constexpr有什么区别?4. 解释一下C++11中的智能指针(shared_ptr、unique_ptr)的使用场景。5. 如何实现一个线程安全的单例模式?6. C++中的类型推导(auto)是如何工作的?7. 解释一下C++中的模板元编程。8. C++中的异常处理机制是怎样的?9. 解释一下C++中的命名空间(namespace)。10. C++中的多重继承会引发哪些问题?如何解决?11. 什么是类型擦除?在C++中如何实现?12. C++中的析构函数有什么作用?何时会被调用?13. C++中的static关键字的作用是什么?14. 解释一下C++中的友元类和友元函数。15. C++中的虚析构函数有什么重要性?16. C++中的内存对齐是什么?为什么需要它?17. 解释一下C++中的动态多态性和静态多态性。18. C++中的std::function和std::bind有什么区别?19. C++中的move语义如何减少不必要的拷贝?20. 解释一下C++中的函数重载和运算符重载。21. C++中的std::thread如何创建和管理线程?22. C++中的条件变量是如何工作的?23. C++中的std::atomic如何实现原子操作?24. 在C++中如何实现一个简单的线程池?25. C++中的std::mutex和std::recursive_mutex有什么区别?26. 解释一下C++中的模板特化(全特化和偏特化)。27. C++中的std::variant是什么?它的用途是什么?28. C++中的std::optional的使用场景是什么?29. C++中的std::any是什么?如何使用?30. C++中的static_assert有什么作用?31. 解释一下C++中的移动赋值运算符的实现。32. C++中的内存管理策略有哪些?33. C++中的函数指针和成员函数指针有什么区别?34. C++中的std::list和std::vector的区别是什么?35. C++中的异常安全性(what is exception safety)有哪些级别?分享不易,关注我分享更多面试知识,嵌入式c++的同学可以看一下大佬总结的面经  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
点赞 50 评论
分享
牛客网
牛客企业服务