未分类

阿里钉钉(C++岗)一面初体验

这次面试的时间时2020年二月,目的是暑假的时候能够赚点零花钱买ps5,可能的话换个新电脑,或者买最新的sony安卓9的播放器,或者去朝鲜旅游。

 

由于我就只会c++,所以我就报了个c++岗,但是我不知道真正的生产环境是个啥情况,我提前刷了波牛客网的面经。不过我猜,最后的工作和chrominum有关,(好像是这么拼写的)。

 

总的来说,面试官问的问题十分基础,就是考你的基本知识,我能过一面主要是我项目经验比较充足,再就是c++基础较好,但是还是有很大缺陷的,面试官问我的计网我就基本忘了,还有就是内存管理我不是特别熟悉,(他问的是内存泄漏)再就是c++标准库我用的不熟练,再就是多线程这一块关于锁的我没有回答上来(太长时间没用了有有点忘记了),再就是shared_ptr和unique_ptr我是临时记忆的,但好歹还是过关了,还有一个是关于红黑树,我理解不是很透彻,但是基本干啥的还是记住了,不过这一个以后还是要自己写写,关于算法,我觉得问题不大,基本就是leetcode简单到中等的难度,这个我觉得还是行的。

 

关于计网,这个我要主要说一下,学长问了我四次挥手的具体过程,最后有个等待时间,应该是最大报文生存时间的两倍,这个我没有理解。

 

算法是手写代码,题目是将一句话反序输出,就是将每个单词的顺序点到下,然后组成一句话,比如“ hello, i am a coder ”//头尾有空格

“ hello, i am a coder ”

"hello , , i am a coder "

" hello ,, i am a coder"

上面这四个输出的都是“coder a am i,hello”

这个比较好办,直接暴力解决。

 

项目经历问的比较多,也问的比较详细,最后还问了我一个以太坊原理,不过我估计他也不懂,我反怎也记不太清楚了,我就瞎几把胡扯区块链原理,然后再加上我记得的,啥交易池,啥叔叔区块验证,反正相关的我都撤上去了。最后效果还不错???

 

 

不过最重要的还是上课好好听,我发现,我自己写的那个c++笔记基本完爆别人写的c++面试啥的,那个c++课真的很重要,老师ppt上各种犄角旮瘩的知识外面面试总结真的很少。(就比如析构函数虚函数)

 

 

学长还考察比较多的就是各种容器类的实现

 

map是红黑树

hash_map是hash表

vector是数组(开始会默认分配一定的空间,空间不够会分配当前空间的两倍)

stack就是单向压栈出栈,数据结构课上讲的

list是双向链表

set是红黑树

deque实现比较诡异,可以看作map和数组的结合体, Deque采用一块map作为主控,这里所谓map是一小块连续空间,其中每个元素(此处称为节点,node)都是指针,指向另一段连续线性空间,称之为缓冲区。

queue没有迭代器,因为只允许先进先出。

 

 

最后学长还问了如何快速从10亿个数中找出最大的那个数,我回答的是设置大小为10的优先队列,然后一直扫描。这个是我的思维有局限性,其实最后直接多线程或者mapReduce解决的,不是单机单线程解决的

 

最后综合下来,算上写代码的时间,我一共撤了2小时??感觉还行

 

Leave a Reply

邮箱地址不会被公开。 必填项已用*标注