先介绍下背景,我本科专业是硬件转软件方面,所以一开始算法基础比较差,没有做过系统设计,为了能得到好的面试机会,我一直都有努力准备,还在网上关注了各种能提高编程能力的攻略,我觉得打好基础的前提是要找到优质的学习资源,这样才能事半功倍,切忌在网上搜一些质量参差不齐的题去练习,有的连答案都不知道对不对,更别提对面试有帮助了。
我对比了几家刷题的网站,最后选了Lintcode(http://www.lintcode.com/)。题目基本上涵盖了所有IT公司面试会面到的算法题,推荐给想刷题的小伙伴们,建议用这个网站的伙伴们好好利用它的筛选功能,这样做你的知识结构能得到系统的梳理,按照难度、还有算法数据结构的类别来源去做,还有按照公司的分类。这些标签都清晰的标在每道题上,一目了然,话说一个IT属性的刷题网站界面做的这么美观我也是很服气。
扯远了,接下来说说我当时是怎么去小米面试的,作为一个米粉,给小米投递简历的时候还是小小激动了下,没想到第二天下午就收到了面试短信。
一面面试官看起来比较好说话,简单自我介绍了一下,就开始问项目经历中的细节,我觉得他问的很细,之前有面经上说小米会对项目经历深挖,幸好我有做准备,看来项目经历他们很重视啊。然后是写代码,矩形里写满了数字,给一个写了1的点,返回周围用1能联通区域的大小。我是用树做的。还有一道题是两个已序数组A,B,将两个数组进行归并,并将结果存放在数组B中,B足够大。例如A={1,3,5},B={2,3,5},结果B={1,2,3,4,5,6}。这一题比较简单。感觉一面沟通的挺顺畅的。
没多久接到了二面通知,我是比较爱纠结的一个人,通过一面反而又高兴又患得患失,怕进不了小米,毕竟技术岗,而且我是后面自学提高的,不过后来想想自己这么久以来刷的题也不是白刷的。二面的题目大概是这样的,一个数组中有100w个整数,这些整数的范围时1~99999,要求打印出重复的数字。这道题我当时没答出来。然后是一道二分查找的题,在一定精度内求根号n,n>=1。
三面印象最深的是在白板上写代码,感觉很紧张,因为一举一动都有人在看。三面太紧张了,忘了题目的细节了。。就记得问了链表的各种经典问题判断环相交结点等,然后是判断一个不规则多边形一个点是在多边形内还是外。还问了操作系统线程状态图线程进程区别虚拟内存cpu调度cache替换算法等。计算机网络OSITCP/IP三次握手四次握手,我答了之后面试官又反复追问我,问的很细。
能到三面我已经很开心了,总体感觉,小米的技术岗很重视算法和思路。技术岗我投了很多,面试也参加了好几波,之前一直在刷的Lintcode给了我很大的信心,面试时看到考察的题和知识点自己熟悉,那感觉超级棒,建议大家刷题还是要贵精不贵多,优质的算法题吃透一道可以顶你做很多道题了,那题要怎么吃透呢?我的办法可能比较笨,但是很有效!!就是对比优质的答案,去看自己差在哪里,思考怎么改进。为了找到好答案我也是搜罗了好久,最后一直反复用的就是下面这个这个查参考答案的网站了(http://www.jiuzhang.com/solutions),除了比较全以外,还因为它每道题代码行数都是最少的,简洁易懂,毕竟你如果代码写得太复杂了相信面试官也不会想和你共事的。里面有一些答案真的不错,我都直接当模板套到各种题目中,比如quick sort的答案。
因为我之前也参考了很多前辈的面经,所以也把自己记得的题写下来分享给有需要的人,怕自己忘记求职路上做的努力,记录下我的刷题和编程进阶之路哈哈,攒人品攒人品!
小米面经-技术岗(编程小白如何进阶)
原创
©著作权归作者所有:来自51CTO博客作者coderer的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
教你如何进行Prometheus 分片自动缩放
Prometheus已经成为云原生时代事实上的监控工具。
Pod Group Prometheus 监控工具 Keda -
小米面试——案例总结
面试过程:小米天线岗位技术面两面,全都是电话面试。第一面也没有约时间,下午睡完午觉后突然来了个电话问我有没有时间现在聊聊,然后进行了简单的交流
面试 职场和发展 经验分享 小米面试 小米笔试 -
小米面试——C++开发岗位
C++ 重写、重载与隐藏的区别C++常见内存错误;智能指针的原理,循环引用是什
面试 c++ 服务器 小米面试 小米笔试 -
小米面试:如何实现优先级线程池?
我们知道,线程池中的所有线程都是由统一的线程工厂来创建的,当我们指定线程工厂时,线程池中的所有线程
后端 面试 Java 优先级 线程池 -
小米面试——计算机视觉算法实习生
13.虚函数表(原来就是虚表,卤煮答 没听过啊,这里面试官笑了,说“没听过不要
算法 面试 计算机视觉 小米笔试 小米面试 -
小米面试题-朋友圈问题(并查集)
问题: 假设已知有n个人和m对好友关系(存于数组r)。如果两个人是直接或间接的
面试题 朋友圈 结点 并查集 数组 -
小米面试题——不用加减乘除计算两数之和
小米面试题——不用加减乘除计算两数之和
开发语言 学习 算法 c语言 #define