0
点赞
收藏
分享

微信扫一扫

小米校招 C++研发 相机部 一二面

归零者245号 2022-01-05 阅读 76
面试

距面试已经有一段时间了,我仅凭回忆写出部分内容,可能存在的偏差请谅解。面试中提到的实习期间的工作在本文中已被忽略。

一面:

首先是一道场景题,和图片压缩的算法有关。给一张图片一些简单的算法描述,让你理解复述并用C++简单实现一下。
然后是C++的基础。
1.介绍下C++的多态
2.static成员函数和成员变量和非static有什么区别,staic成员函数能访问非staic成员变量吗?非staic成员函数能访问staic成员变量吗?
3.C++父子类之间的指针转换是否安全。
4.C++内存模型
5.inline函数的原理,一般inline用于什么场景。
6.构造函数可以是虚函数吗?
我:C++不可以,有些语言是可以的,和实现方式有关。
面试官:是吗,这也在我知识范围之外了(笑

7.忘了,好像答的比较快就没怎么问了,面试官开始介绍部门工作内容,工作氛围,环境。。。

二面:

聊了聊比赛的事情,期间有一件事印象深刻:

面试官:你们这个icpc竞赛是做什么的,能简单介绍一下吗?
我:巴拉巴拉。。。
面试官:那听起来和acm竞赛差不多啊。
我:哦,这个就是acm竞赛,以前全名acm-icpc,现在acm不赞助了而已。

面试内容共五道题
1.反转链表
2.爬楼梯(经典dp入门题 O(1)空间 滚动数组)
3.求一个数组中出现超过一半的数字,保证该数存在。(O(N)时间,O(1)空间)
前三道问题应该都挺经典的,leetcode应该能找到(?
4.一段代码,分析输出的结果,大概考点(1)sizeof(int) (2)对union进行部分的赋值,主要考union共享存储空间
5.一段代码找bug,大概内容如下:要求让指针a指向vector中target的地址

   vector<int> v = {1, 2, 3, 4, 5};
    int *a;
    int target;
    cin >> target;
    for(auto x:v)
    {
        if(x == target)
        {
            a = &x;
            break;
        }
    }

存在的问题是atuo x:v的时候实际上做的操作类似于 x = v[i],重新分配了一块空间而不是原空间,改正方法也很简单。

for(auto &x:v)

改为引用即可。

总结:

小米的面试官态度很亲和,hr效率也很高,面完下午就出offer了。主要考点在实习(项目)经历,C++的基础知识还有一些简单算法题,很少考八股(点赞)。唯一的问题可能就是薪资水平据一线互联网公司还有一定差距。(悲

举报

相关推荐

0 条评论