作者:夕阳染红的坡道 链接:https://www.nowcoder.com/discuss/322691?type=post&order=time&pos=&page=5&channel=1009&source_id=search_post&subType=2 来源:牛客网
1.自我介绍 2.深挖项目(阿里面试官确实厉害,给我发现了俩问题,后边一个没怎么讲出为什么)
- class A是一个空类,它里面有什么方法 4.上边讲到了移动拷贝和移动赋值,讲讲 5.多态的形式 6.虚函数实现机制 7.父类的析构函数是否应该是虚函数,为什么 8.写过多线程程序吧,讲讲线程间同步的方法吧
- dynamic_cast与 static_cast区别
- class A类型的指针,此时通过 dynamic_cast转换为 class B类型的指针,会出现什么问题,是否能通过编译,或者是否能运行(说是不能,但是编译错误还是运行错误不确定)
- 都用过哪些智能指针, shared_ptr与 unique_ptr有啥区别
- shared_ptr是线程安全的吗,为什么
- 有哪几种锁
- 了解
吗,底层是怎么实现的 - 了解 TS指令吗(不知道,后来发现其实我看过,但是忘了, pdd面试时候我还说过有一种硬件的原子化指令,但不知道叫啥,后来也没看 ……)
- map是用来干啥的,底层数据结构是啥
- STL用过吧,讲讲都用过啥
- vector动态扩容讲讲
- resize()与 reserve()区别
- 我现在循环往一个 vector里面插入 10000个数据,一次插入一个,怎么高效,用 resize()还是 reserve(),为什么
- 迭代器什么时候会失效,哪些容器什么情况下会失效
- map迭代器会失效吗,为什么
- sleep()与 wait()区别(只讲了 wait,后来看了看居然是个 Java的,我一开始以为是问的 signal()与 wait())
- 手撕代码,给定一个无序整数数组,输出排序后每个元素对应的下标。 注意:元素可能存在重复,如果重复则下标相同。(血崩,本以为这个题肯定有巧妙办法去实现,再就是着急写完,因为深信服约的面试时间就开始了,不可能直接进行sort,想用bitmap去写,写完之后,发现思路根本不对,当时就崩了,脑子蒙了)
作者:Lamperougell 链接:https://www.nowcoder.com/discuss/522219?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
9.22一面 1h40min 1、dynamic_cast如何实现安全转换 2、struct、class内存分配区别 3、虚函数实现 4、三种构造函数 5、野指针,举例,如何解决 6、技术亮点,项目相关 7、线程进程区别 8、线程通信 9、多线程打印ABAB(没用过多线程 😂回答说用临界区。。。面试官跟我说用信号量) 10、手撕,1)实现智能指针引用计数的功能,要用模板,2)字符串含有数字、+-*/、(),计算表达式结果 还有一些问题记不清了,反问具体什么部门,做什么的,用的语言,还有几面(至少还有两轮P11大佬的面试。。)
9.22二面 2h(和一面隔了一个多小时) 也问了很多基础问题,主要放在个人能力、项目情况上,至少有一个小时都在手撕代码。。 1)模式匹配(很简单,第一次写完漏算了一种情况,面试官提醒后很快补上) 2)两个排好序的数组A、B(可能有重复数值),集合S的值为A中的数与B中的数的和(S不含重复的值),求前K个数。 本来我打算用暴力求解,再排个序 😂 面试官直接说有一种不需要遍历所有数的方法,我回答了并举例讨论了一会儿,他说那你先写。 第一次写完,他说这个有点问题吧,我感觉也有点怪怪的又进行讨论,但隐隐觉得讨论结果复杂度不低,我说那我改一下吧,改的时候,没按照讨论的改 🤣 🤣所以改完面试官觉得逻辑不对啊,不是之前讨论的,我跟他解释了一下,他依然觉得会漏算一些结果,最后说给你十分钟再改一下。。我最终按照之前讨论的逻辑,或者说我理解的逻辑写了,写完面试官还有疑问,我这次解释他觉得还行吧,这时候已经两个小时了。。。 反问什么时候能知道结果,对方回答要问hr有没有hc(一听这话心里一突感觉要凉),因为已经是秋招后期了流程会很快,这周有结果,后面至少还有两面,我:越面越多。。。不过技术中台嘛,能理解 第二题至少讨论了四十分钟,完全想不起来前面问了什么具体问题。。。
9.24 三面 37min 聊项目、代码量、做的准备、来客户端的原因、前几面自己的感受 问多线程、协程,但我不会就没多问 面试官主动反馈我的面试,总结了我的优缺点,很准确(缺点是经验不足,感觉隐晦的告诉我没法直接给我说过不过) 还有一场p11的大佬面
9.25四面 40min 全程以聊天的方式问问题,项目、专业课、计网编译原理等基础知识、linux命令、算法、目前offer、工作地等等 不是cs专业真的好多不太懂。。 九月底十月前出结果
作者:淘宝技术部_游戏化互动 链接:https://www.nowcoder.com/discuss/100946 来源:牛客网
阿里一面(部门组长面)
-
简单自我介绍了下就开始问项目
-
虚函数实现机制(问的比较细)
-
纯虚函数
-
数据库索引原理(这块脑抽答错了 后来面试官人很好给我引导到B+树上去)
-
聚集索引
-
TCP UDP 端口扫描 三次握手中 客户端和服务端主动链接关闭所处状态简述
-
我记得一面面试官 问了很多关于网络的问题 (具体的现在忘记了)
-
守护进程
-
多进程之间通信方式
-
Buffer 和***
-
缓存命中和不命中
-
CDN
阿里二面 总监面
-
微信获取权限的协议?(这个在百度问到了,后来在阿里又问到了,大家可以搜一下基于token 的后台管理 与普通用户名密码验证有什么具体不同)
-
关于共享内存 mmap 映射文件。
-
D***
-
分布式存储解决方案
-
https
-
加密解密 加密算法(这块没答好)
-
Taf服务端源码/taf 客户端源码
阿里三面 交叉面
-
当天在北京 被百度三面官虐完之后浑身疲惫,找了几个咖啡厅噪音都很大。感觉面试官体验很不好。大家以后远程面的时候一定一定要找一个安静而且网络好的地方
-
问了问项目,然后画风一转直接问你优化的点在哪里
-
服务器性能提升方案
-
PS: 因为几个项目都和网络安全传输有关,三面面试官让我详述如何提升数据包在网络中的安全传输 安全性可靠性等问题
-
TIME_WAIT 的 2MSL
-
看过哪些源码
-
负载均衡
-
数据库的垂直拆分和水平拆分
作者:lucky_girl_ 链接:https://www.nowcoder.com/discuss/101607 来源:牛客网
全程一个半小时。 1、先做个自我介绍 2、你本科参加过那些比赛印象最深的是哪一个,担任的角色,做了哪些工作 3、看你简历上项目就写了现在的毕设,你做过其他的项目吗? 4、说说对c++面向对象的理解?封装继承多态的存在是为了什么、有什么优点吗? 5、说说多态实现原理 6、纯虚函数的作用、为什么要有纯虚函数(他又问,虚函数也可以重定义呀,纯虚函数出现到底是为了什么,他又讲到java的接口) 7、C++类型转换方式有哪些?分别说说。dynatic_cast失败会怎么样?什么时候返回空,什么时候抛出异常 8、空类。编译器会为之生成什么成员?(中间还讨论到:我说默认构造函数只有在编译器需要的时候才会产生。 他问我你什么意思默认函数就是编译器会自动生成的啊?)【难道默认构造函数不是只有编译器需要时才产生吗,哼】 9、说说对虚析构函数的理解?什么时候要把析构函数声明为virtual 10、平常用什么容器?说说常用的容器。vector的底层实现、扩容原理、size、capacity、resize、reserve四个函数 11、map底层实现、unordered_map底层实现?哪个写(插入、删除)快? 各个容器迭代器失效的情况。 12、程序运行出错,抛出异常,怎么调试?用过什么调试工具?gdb调试?(程序运行出错,会生成一个什么call(音译)文件??? 面试官说的什么call(音译)文件是什么?) 13、知道什么智能指针?说说shared_ptr实现原理、线程安全不? 14、说说你理解的进程、线程?进程的内存分布?孤儿进程? 15、怎么理解物理内存、逻辑内存?如果中国每个人都有e-mail,把所有人e-mail都存到内存中,存得下吗?(13亿人,每人20字节,估算共多少内存) 16、多线程 17、数组与链表 18、给一个无序数组,求排好序后得每个元素在有序序列中的下标,要求原数组元素顺序不变? 给一个有序数组,从中拿出一个子序列(无序),求其排好序后在原数组的下标 19、一条记录有十个字段,一个文件***十亿条记录,要求把每个字段放到一个文件中,怎么办?
作者:那一缕阳光╰ 链接:https://www.nowcoder.com/discuss/87621 来源:牛客网
阿里的小哥哥也是很亚撒西的,跟实习面试那会的远景小哥哥一样,你们面试官的声音怎么可以这么好听!( 阿里早就以面试深挖基础知识为名,此番面罢果不出所料) 电话面试: 1、照例自我介绍; 2、项目; 3、做项目途中遇到的困难; 4、值传递和地址传递; 5、指针和引用; 6、const int *p和int * const p的区别; 7、C里内存的五个分区,着重讲一下堆和栈的区别(趁势又讲了一波为啥值传递swap函数传不成功,因为在栈区,结束会销毁); 8、C语言局部变量在堆区还是栈; 9、C++中类里static成员变量与普通的成员变量有什么不同; 10、静态函数呢? 11、静态函数访问普通成员变量和静态成员变量/普通成员函数 访问普通成员变量和静态成员变量;(我自己这块也是糊的,就被绕晕了) 12、知道STL吗?讲一下STL里的list; 13、TCP跟UDP(区别,TCP的三次握手,为啥要三次没问,但是我抢答了) 小哥哥看我不是科班出生,问问题上虽然挖的深,但是已经很手下留情了,没有问一些项目实战中的东西,然而又害怕我是个不会写只会说的麻瓜,所以就要约一个远程笔试(吖咯,当时接电话前就憋了一股尿,就婉言谢绝了小哥哥,改了一下远程笔试的时间) 小插曲(到了晚上约好的时间端端正正做好,小哥哥电话也打来了,但是阿里伯乐系统似乎出了点小问题,第一封邮件点开就自动5S之后关闭,后来一封我手贱点了刷新,之后再发邀约邮件发布出来(可能对同一面试者一天有上限次数?面试官表示很抱歉,我也很抱歉啊,天呐,这些人周末都还要来加班的,心疼小哥哥,最后把远程笔试的时间调到了今天下午1点) 远程笔试: 由易到难,对基本功的要求太鸡儿高了! 1、定义一个链表; 2、在他给定的链表内实现删除某个指定值的节点(一紧张就直接背剑指上的写法了,写完小哥哥说我并没有定义要被删除的节点,定义的是要被删除的值,然后请大家注意各种边界条件啊!被小哥哥批评不考虑整个链表只有一个指针的情况) 3、定义一个二叉树; 4、二叉树的前序遍历;(写代码的规范性啊,缩进没注意也被批评了) 5、二叉树的深度优先遍历; 6、两个栈实现一个队列; 7、找1000个数里最大的K个数(惨兮兮的用最大最小堆在做,写了一半小哥说你直接用map不就完了,我说没成想能用STL的函数)
作者:明月照相机 链接:https://www.nowcoder.com/discuss/88501 来源:牛客网
面了一个半小时,感觉嗓子都要哑了…… Q:做个自我介绍吧 A:聊项目 ……(聊了挺久) Q:我看你这边github上有一个协程库,能介绍一下协程的概念吗? A:协程,用户级,轻量,快,效率高,但是不结合多线程难以利用多核 Q:能说一下怎么实现的吗? A:讲了一下基于ucontext怎么切换上下文 Q:协程和线程的区别? A:调度比较快,不用进内核。单Schedual难以利用多核? Q:内存上有什么区别? A:同一个CPU上多个协程不会产生临界区竞争。 Q:协程切换的时机? A:定时器,文件阻塞,拿到锁阻塞,函数调用的时候。 Q:你写的库的对于使用者有什么优势? A:……你可以用我的APIbalabala…… Q:给我一个用你的协程库的场景吧?? A:YY了一个轮询读文件的场景。 Q:你这个说到了你维护了一个栈,这个栈是干什么的?栈的维护是你自己做的吗? A:维护每个协程的上下文。我就只需要管理这块内存就可以。不是很完善…… Q:上个读文件的场景,什么时候才会阻塞? A:设一个NONBLOCK位,在出错读到EAGAIN的时候就切换出去。 Q:如果两个都阻塞了呢? A:那就没辙了……举了一个很多fd用epoll轮询的场景。 Q:从你个人角度有没有遇到过比较困难的场景? A:balabala…… Q:说说你实习的项目? A:balabala…… Q:说说map with mutex和sync.Map的区别? A:Mutex是悲观锁,而且那个粒度比较大。sync.Map是带缓存的,体验和CAS差不多。 Q:聊点基础的吧 A:好…… Q:sizeof和strlen的区别? A:你们都懂得 Q:一个int大概多大? A:32位4个字节,64位8个字节 Q:int在内存中字节排布? A:小端序 Q:虚函数指针什么时候会出现? A:在有虚函数的时候~ Q:static的作用? A:都懂得,这里不展开了 Q:多个进程同时监听一个UDP端口会怎么样? A:不懂…… Q:你可以了解一下这方面。进程的内存结构? A:内核、栈、动态链接库、堆、静态区、代码段、保留区 Q:静态变量和全局变量在哪个区? A:静态区…… Q:++i和i++的区别? A:++i效率比较高。 Q:虚基类和普通基类的区别? A:菱形继承问题 Q:空类的大小? A:1byte Q:为啥? A:不懂… Q:引用和指针的区别? A:都是用指针实现的。 Q:进程间通信? A:socket, 管道,消息队列,共享内存 Q:TCP三次握手? A:讲了讲(忘了讲状态转移) Q:TIME_WAIT? A:讲了讲……感觉面试官不是很满意? Q:CLOSE_WAIT呢? A:讲了讲……吐槽了一下一般都是代码写得有问题(逃 Q:epoll有几种类型? A:ET,LT。 Q:调试程序用什么? A:gdb,log,valgrind, vs Q: CPU高了怎么看? A:free+pprof,看火焰图 Q:其实C/C++也有类似地工具 A:嗯 Q:coredump有了解过吗? A:只用过,不知道原理 Q:你可以再了解一下呀。这个还是很重要的。 A:好的 Q:hash冲突怎么解决? A:拉链和线性探查 Q:还有啥要问我的? A:你们这边比较青睐有什么技术积累的人? Q:balabala…C/C++
小哥人超级好,讲话也好听ORZ 大概一小时后二面通知,说要视频面……还要现场写代码,慌得一批……
作者:小佬頭 链接:https://www.nowcoder.com/discuss/88852 来源:牛客网
继蚂蚁金服二面结束消息如石沉大海以后,我又作死投了百度,岗位是C++开发
一面是在今天,7.28(周六),总时长54分钟左右
百度一上来就直接问数据结构与算法,没自我介绍,没项目介绍,后面还问了操作系统、计算网络、网络编程、数据库原理等基础内容
删除指定的单链表的一个节点,要求时间复杂度为O(1)
层序打印二叉树
计算二叉树的叶子节点
递归的原理是啥?递归中遇到栈溢出怎么解决
编写一个函数指针
TCP/IP四层协议,OSI七层协议,每层都有啥对应的协议,原理是啥
TCP与UDP的区别,然后分别对应的系统API实现细节
TCP握手的详细数据传递,四次挥手详细数据内容,数据包组成、TIME_WAIT状态,2MSL,RTT,重传、滑动窗口、拥塞原理等等,然后socket编程接口细节
用户态和内核态切换过程
进程间通信有哪些(有名管道,无名管道、共享内存、信号、信号量、消息队列、socket等),两台计算机间通信有哪些,对应的系统API接口、原理
数据库索引、设计、范式、引擎、索引为啥用的是B+树不用别的数据结构、时间复杂度、利用索引查询一条记录过程(分别从查询B+树、数据页、链表、聚簇索引等等角度来阐述)
就只想去深圳么?北京要考虑么
有啥想问的么
作者:亚托克斯 链接:https://www.nowcoder.com/discuss/90335 来源:牛客网
1、自我介绍
2、科研经历(没说太清楚,面试官说下一个话题)
3、说说项目(说了一下华为的软挑和京东的物流优化的比赛)
4、C++基本知识(iphone不太会录音,只记得下面几个问题了)
1)说说static
2)说说多态
3)如何实现多态的
4)虚表和虚表指针
5)什么时候用虚析构函数
6)GDB调试 ,问了几个命令 (命令有点记不住,崩了)
7)动态链接和静态链接说一下 (不太懂)
5、操作系统
1)什么是守护进程
2)如何实现守护进程(不会)
6、网络编程
1)说说select()、poll()、epoll()
2)epoll()是用单线程实现(我说是单线程,I/O复用不需要多线程吧)
3)如何及时发现客户端已经和服务器断开连接了(我说的心跳机制)
7、发给了一个连接 ,写代码 两道题,给了30分钟
1)给定一个int数组,有n个元素,求出最大的k个元素(优先队列priority_queue)
2)给定两个有序数组X和Y,现在从两个数组中各取一个树x,y求和组成一个新数组,求新数组的最大k个数(可重复)。
如X={1,2,4} Y = {2,3,4} 新数组的最大两个数为:{4+4,3+4} = {8,7}
(暴力+上一题的接口;效率不高,面试官不太满意,让我再想想)
作者:小谷围coder 链接:https://www.nowcoder.com/discuss/459114?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
所有面试都是电话面试,所以都有电话录音 以下是按照电话录音整理的 第一次投的是polarDB。 一面: 19点开始,电话面试 一共面了一个小时十分钟左右。 自我介绍。 说一下C++的多态是怎样实现的 如果继承了两个父类,那子类的虚函数表长什么样子?谁先谁后呢? 说一下拷贝构造函数所有的调用场景有哪些?想到的都说一下 指针和引用有什么区别 通常什么时候该用指针,什么时候用引用呢? 说一下volatile关键字的作用,什么场景一定要用volatile关键字呢? 说一下C++是怎么实现哈希表的(其实问的是STL里面的map和unordered_map) 解决哈希冲突的方法有哪些 unordered_map支持并发读取吗?如果让你实现一个支持并发的unordered_map的话要怎么实现 说一下你对归并排序的理解 机器内存比较小,数据量比较大的情况下 要怎么排序 说了一下我的研究课题 问了几个跟研究课题相关的问题
操作系统里面的内存管理的模型是什么样的 一个进程里面的内存管理是怎样的 说一下PCB的概念,干吗用的?里面有什么? 操作系统从一个进程切换到另一个进程 和从一个线程切换到另外一个线程的过程有什么不一样吗? 为什么线程切换的开销比较小?那为什么进程切换开销比较大? 进程间常见的通讯方式有哪些
IP协议是用来干啥的? 为什么TCP是一个面向连接的可靠的传输协议? TCP为了保证可靠传输有哪些机制呢? 为什么TCP的连接要三次握手啊? 说一下拥塞控制的几个算法
说一下什么是索引 简单说一下MySQL的B+树是一个什么样的索引 B+树跟B树有什么性能上的差异? 数据库的并发安全是怎么做到的呢? 除了B+树,有没有学过其他树的变种,如LSM树?(记得好像是LSM树) 说一下事务的属性 事务的原子性是怎么保证的 事务的提交过程是怎么提交的呢? 事务的隔离性是怎么做到的呢? 简单介绍一下你对MVCC的理解 数据库的隔离级别 什么是幻读 R级别会不会有幻读 SI级别了解吗 除了MySQL你平常还接触过哪些数据库? MySQL的查询引擎你有没有了解(说了innodb,他说这是存储引擎,不是查询引擎) mysql的查询过程是什么样的 MySQL的join是怎么实现的,底层实现 如果MySQL里面有一条查询跑的比较慢,你要怎么找呢? 如果它已经走了索引但是还是很慢怎么办呢 说说你对分库分表的理解,之前有做过这相关的吗,分库分表的原理有没有了解过呢?
spark的流处理原理是怎样的呢 spark是怎么划分stage的呢 如果有些任务失败了,它是怎么做容错的呢? spark的内存管理这块有没有了解过
做编程题,合并K个排序链表 加微信,在文本文件上写代码,不用跑,写完微信发给他 ( 当时秒了, 面完之后发现写错了 完了 ) 最后反问,我写完编程有点懵了,想了半天想不出来问什么,尴尬 互相祝周末愉快,结束. 求个二面
更新: 整整一周后迎来了二面,二面全程不问基础知识,都是项目深挖和设计题。下面记录几个值得参考设计题。
二面: 如果让你实现一个mutex你要怎么设计呢? 多线程下载比单线程下载快是为什么呢? 笔试的编程题你还记得吗,有什么思路吗?(我几乎0ac hhhhhhh) 中间冷不丁问了一下我怎么看待加班。。。 要你存整个中国的地图数据你打算怎么存?设计什么样的数据结构?
差不多也是一个小时,求个三面吧
三面: 三面同样是二面后一周,也是个电话面,不过要手撕代码。 三面应该是考察技术深度的,大部分都在问操作系统底层 项目中使用了什么C++的特性,或者什么python的特性 对多线程有多少了解 进程和线程的区别 多线程要操作同一块数据,有什么需要注意的地方 那多进程要操作同一块数据要怎么处理 多进程要怎么进行同步 了解操作系统的内存管理吗 一个OS有16个G内存,它是怎么管理的 在内存管理上有哪些策略 清楚系统调用这个概念吗 内存相关的系统调用有哪些 分配或者释放内存的时候涉及到哪些系统调用 对常见的内存泄漏的解决方法有什么了解 其他编程语言是怎么进行内存管理的
(面试官解释了为什么他们部门如此重视内存管理和操作系统底层原理,因为他们部门是做数据库的,需要处理高并发等情况)
讲一讲你了解的数据库不同的隔离级别 (他说其实对数据库知识要求并不高,可以进来再学)
然后开始在线编程,面试官发了一个阿里伯乐在线测评链接,在这个链接上编程双方都可以看到。 编程题是实现一个FIFO的queue。实现一个push和pop方法 实现完之后面试官进一步要求实现支持多线程的queue。 实现完多线程之后面试官要求当queue满了之后要阻塞线程。 实现完阻塞之后面试官要求queue为空的时候也阻塞。
笔试之后面试官介绍了他们部门在做的东西,讨论了下数据库现在的发展情况,技术相对来说比较成熟,部门里有很多岁数比较大经验丰富的大牛 面试结束,大概一个小时。
太难了 还是厚着脸皮求下个面试
交叉面: 交叉面一共44分钟。交叉面听说是个p9大佬,约我周六早上九点面试。我一开始还寻思为什么这么早,后来面试官告诉我他人在北美。。。好吧 现在是他晚上九点应该 自我介绍 讲一下最近在做的或者印象最深刻的一个项目。讨论了大概十五分钟,大佬的问题真的一针见血。 然后又做了一个很有意思的小讨论。怎么实现malloc和free方法。先做了个起码能够保证正确的实现(说思路不用写代码),然后不断优化,最后我实在优化不下去,时间又到了,面试官就让我回去再想想。 反问环节问了下面试官对程序员职业生涯只有35岁有什么看法。面试官笑了。然后说一方面人要不断提升自己,在任何年龄都不应该是一个终点。另一方面,在polarDB这样的部门接触的是底层技术,做基础技术的程序员与做业务的程序员不同,技术才是核心竞争力,在阿里云也有很多年龄很大的程序员,35岁对于他们来说不是终点,而是巅峰时期。 行吧 不管过不过这次面试,我都有收获很多。但还是求个下一面
更新: polarDB🈚了,等了三周后被另一个部门打电话来捞,问了下面试官说我之前的几次面评都是A。 本来觉得这个部门有刷kpi的嫌疑就拒了,但是部门的人前后打了三次电话来争取,感觉再拒就很不给面子了,最后决定再面一次。 一面是个代码面,面试官发了个伯乐链接,出了三道题,给半个小时写。 (1)实现将一个非负整数逆序后,存放到一个数组中,过程不能使用stl栈容器。 (如:123456存放数组a后,a[0]为6 a[1]为5 … a[5]为1) (2)求一棵二叉树第H层节点的个数 (3)既不用加减乘除,也不用库函数,实现求两个数的和的方法。
题目难度适中,写了十五分钟就交卷了,剩下的时间跟面试官交流部门的情况和我关心的问题。面试官说让我保持手机畅通。
这个再挂我可就不面了啊
更新: 这次的面试异常迅速,第二天二面,第三天三面。 二面问了几个基础题: 海量数据求TOP-K
高并发服务器客户端主动关闭连接和服务端主动关闭连接的区别
描述最短路径算法(迪杰斯特拉算法)
map容器如果key是类对象,对类有什么要求? 追问为什么只重载<操作就OK?
逻辑题:2根粗细不均匀的蚊香,每根可以精确烧1小时,如何确定一段精确的15分钟时间。
三面聊研究生的研究领域和人生
希望能到hr面拿offer吧 七面下来也太顶了
更新: 三面后整整一周hr面 这回是一面的面试官一直帮我跟进流程和催促人事,感觉效率着实高了很多
hr迟到了十分钟然而没有道歉。这次hr面是用阿里郎视频会议进行的,也是本次秋招阿里第一回视频面试。阿里的hr面真是难顶。一共四十多分钟,问的都好有水平,一不小心就给你挖坑 没有自我介绍,上来先问你拿了哪些offer。 问了给自己大学以来的各个时间分个区间,每个区间自己都在做什么,收获了什么,哪个区间成长最大。 导师对你最放心什么,最不放心什么。 选择一个公司最看中哪几个要素,排个序。 挨个要素问,觉得阿里在这方面跟xx公司比怎么样。
感觉hr也是见过世面的,我一说客套话,她就直接看穿🤣 用一声大大的“害”表示你还too young
更新: 面试官告诉我hr面通过了,希望这回能顺顺利利
作者:牛客373683340号 链接:https://www.nowcoder.com/discuss/484379?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
lz非科班出身,项目经历也拿不上台面,是一只菜鸡没错了 20号晚上收到了钉钉的面试电话(被16人标记广告推销 😂我差点没接),非常意外,因为笔试时2道只ac了1道,自我感觉很凉。 约了第二天中午的面试,说是到时候通知我怎么面。 今天等到中午11点还没有任何邮件或短信,结果11点过了2分钟直接打了个电话过来(又是被30人标记为骚扰的号码)。 本以为是告诉我去哪个网站面试的,结果面试官直接就在电话里聊开了。 没有自我介绍、项目介绍和手撕代码环节,面试官看我写了一段实习经历,聊了聊(其实是去我导师的公司落地算法)。 然后问我没啥服务器开发经验,为啥要投。 我说算法落地的时候有涉及到服务器和控制台的通信,就是不是大型服务器,都是一台电脑。面试官笑了一笑。 接着问我最近看了啥书,有啥印象深刻的知识点。 我说了C++、操作系统和网络,介绍了TCP三次握手和四次挥手的过程。 面试官问能不能两次握手,我回答能,就是信道可能有延时和丢包因此不保证可靠。面试官又问那怎么改握手过程可以保证可靠(这里答的不好)。 接着又问C++看了啥内容,我大概介绍了一些虚函数、多态、STL、C++11新特性等。面试官让着重介绍一下STL,还问了vector扩容 回答完之后。。面试官又诡异地问了一遍你最近看了啥书,我有点懵。 我又战战兢兢地说我刚才说了的,然后就到了熟悉的反问环节。 补充的是,不知道是啥原因,面试官的声音非常糊,而且伴随着电流音和卡顿,所以全程我不得不让面试官重复了好几遍。 包括最后反问环节,我想了解一下钉钉工作中用的相关技术,面试官介绍时电流音很重,基本上没有听清楚。
😂结合之前别人的面经,我大概是被刷kpi了,凉了凉了。 祈祷能有公司收了我这个菜鸡
作者:̶̶☆̶̶守̶̶护̶の̶冫彡 链接:https://www.nowcoder.com/discuss/442725?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
一面:大概1小时 1.自我介绍 2.项目提问(问了CNN原理、为什么要用深度学习之类的,围绕项目比较好回答) 3.编程题,比较简单,求链表的倒数第k个的值(思路:双指针),但是面试官要求考虑各种情况下的要求,例如k为负数、超过链表长度之类的处理 4.智商题,是的,最后还有一个我认为是IQ题,有两行数,第一行是0到9共十个数,第二行的每一个数是第一行在第二行出现的次数(有点绕), 让把第二行填满。 我填出来了,思路就是从后往前填,9、8这些大数在第二行为0,然后逐步推导 5.反问环节,问了三个问题
第三天,一面过了几分钟,电话来预约第二天下午二面 二面:大概40分钟,交叉面 1.自我介绍 2.问了一些计算机操作系统的事,然而我不知道,直接回答不清楚(惭愧);还问了c和c++之间的区别,为什么有些系统是c写的,有些是c++写的,怎么解释, 我还是不知道,2333 3.编程题,编程题还是链表题,LeetCode原题,数的每一位从高到低保存在链表中,求两个链表相加的数,以链表形式输出。我的思路,将链表的数保存在stack中 然后依次pop出来相加,注意一下进位、stack空后之类的细节就好 5.反问环节,问了三个问题 三面:大概30分钟 第三面竟然和第二面冲突,在同一时间打过来。后来了解到是没协调好,这次本来是一面,面试的是主管,先了解一下情况,主要问了一下项目和论文的事, 当场表示他这边通过了,估计是因为GPA比较高,也表明理解非科班的情况,***当场热泪盈眶!
第四天,三面过了几分钟,就有电话来预约明天下午HR面试 HR面试:大概30分钟 1.自我介绍 2.HR问自我优缺点、最成功的事 3.根据几次面试,自我感觉技术比较薄弱的部分和有把握的部分(自我认知) 4.反问环节
作者:火的意志 链接:https://www.nowcoder.com/discuss/202381?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
1月 一月面的是网易互娱定向预研项目。此前,由于对求职方向迷茫以及其他一些事情,浪费了时间,因此这时的C++水平和计算机专业知识不多,去面试毫无疑问被虐。 定向预研项目总共面了两个课题,共4次面试。
第一个课题:全身反向动力学 一面 面经如下: 1.自我介绍:科研+学术经历+社团经历 2.为什么选择游戏设计 3.之前的游戏设计经验 4.Python相关 (1)装饰器? (2)类方法&实例方法? (3)生成器? (4)如何遍历Python的list? (5)使用迭代器遍历和非迭代器遍历区别? (6)如何自己实现迭代器? 5.C++ (1)多态性? (2)父类析构函数定义为虚函数后果 (3)malloc和new的区别 (4)vector容器相关知识 6.算法 冒泡排序 链表:如何判断链表是否是循环链表? 算法题:最大子列和 7.操作系统 8.反向动力学 解析法,雅克比迭代法,CCD 9.反问:非CS转行CS的素质
分析 现在看这些问题,其实都不算难,但是当时比较菜,所以只答上来50%。这一面过了。
二面 二面是去网易在杭州滨江的公司面。面经如下: 1.自我介绍 2.在学校的项目 3.反向动力学算法再谈 4.技术面试 (1)类的特点及作用 (2)基于接口的编程内容及优点 (3)Python的内存回收机制 (4)C++的new生成的数据在内存的什么位置 (5)引用和指针的区别 (6)设计模式方 (7)Python类方法的继承以及函数的扩展 (8)Python变量的作用域,重名变量处理 (9)排序算法:各种排序算法及时间复杂度 (10)100万个玩家的得分,每1分钟更新前100名玩家,如何实现?(TopK问题) (11)手写代码,给定二叉树层序遍历顺序,将其转换为二叉树 5.是否应用过骨骼绑定
分析 现在来看,经过这次面试,菜的程度进一步暴露。这一面不出意外地挂了。
第二个课题:寻路算法 上一轮挂了之后,给了一个重新选择课题的机会,于是选择了这个。同样进行了两轮面试。
一面 吸取前两次的经验教训,这次面试之前复习了一下之前面过的题,并准备了一些问题,不过没有经过系统的学习,只靠背题,还是不行。这次是电话面,而且还有三四天就过年了。 面经如下: 1.自我介绍 2.C++相关 (1)虚函数表,虚函数指针,多重继承下的虚函数表,派生类调用基类虚构函数 (2)析构函数指定为虚函数 (3)结构体等的内存对齐 3.python相关 (1)“==”和“is”的区别 (2)可变对象和不可变对象 (3)小整数缓存 (4)循环引用及如何消灭 (5)元类 (6)GIL锁 4.算法和数据结构相关 (1)堆排序,堆的实现 (2)二叉树的遍历及实现(先,中,后) (3)链表反向打印:栈、改结构、二叉树的中序遍历 (4)N个数里找k个最大的 5.是否有过寻路算法的相关研究经历
分析 此次面试仍然是只回答上50%的问题。虽然通过了,但是经过前三次面试,感觉还是要尽早学习一遍。
二面 二面是年后,是电话面试。在过年期间除了做没有卵用的假期作业(奇葩的小老板留的),准备了一些链表和二叉树方面常见的算法题,同时确定了回学校后需要学习的内容。 二面面经如下: 一 自我介绍 1.开发方面的经历 二 C++: 1.New/Delete和malloc/Free区别 2.四种强制类型转换:静态转换、常量转换、重解释转换、动态转换(完全不知道) 3.类的虚函数的作用;B类继承A类,AB类中均定义S函数;内部机制(虚函数表) 4.inline内联函数。 5.代码到生成可执行文件的流程; 6.智能指针(也是完全不会) 三 Python: 1.mutable/immutable可变对象与不可变对象 2.list和tuple各自的优势 3.字符串用+连接的缺点;如何连接? 4.Python如何实现垃圾回收(引用计数) 5.==和is区别 四 算法: 1.寻路算法如何实现(A点到B点) 2.图的深度优先和广度优先搜索 3.如何减少无效搜索(不可达点) 4.排序算法:冒泡,选择,堆,插入,希尔 5.排序算法稳定性如何衡量 6.C++中sort()为什么采用快排
分析 这些问题现在来看应该能答上来80%,当时还是太菜了。此次面试也不出意外的跪了。
2月 寒假结束后回校开始学习操作系统、计算机网络相关的知识,同时巩固C++知识。当快速阅读一遍《C++编程思想》第一卷后,更为之前浪费的时间赶到可惜。第一卷涵盖了许多之前问过的题。 操作系统和计算机网络则以视频为主。为了在3月的暑期实习招聘中能有所准备,采用视频学习的方式快速学习。
3月 由于奇葩小老板时不时恶心人,因此投递了阿里、网易互娱、网易雷火、华为、海康威视、蘑菇街、微策略等在杭州的公司。其中,海康威视和蘑菇街直接建立跪。 阿里的面经之前写过,在如下链接中: https://www.nowcoder.com/discuss/172869 网易互娱的笔试题对于3月份的我来说很难,只会一道题。同时,由于不了解牛客做题的“循环case处理”,导致唯一会的题一分没得,网易互娱笔试跪。 微策略的面经如下: 技术面
自我介绍 如何获取最新技术的消息,接触到最新技术的信息 了解的C++11新特性(说的智能指针) C++多态和虚函数 如何实现一个只能在堆上建立实例的类 设计模式了解哪些(在寒假的时候看过一些,不过都忘了) 内联函数,将频繁使用的函数定义为内联函数有什么弊端(会造成汇编代码重复过多,代码冗长) 什么是死锁? 算法题,在字符串b中将字符串a中出现的字母删除(原地,采用哈希加双指针可解) HR面
中文自我介绍 英文描述自己是什么样的人 英文描述微策略和阿里巴巴的区别 中文,如果微策略和阿里巴巴同时给你OFFER,你选哪个?(透过现象看本质,问的其实是找工作看重什么) 如何看待996 职业规划是什么? 分析 微策略的技术面面试官非常nice,一种是在和你探讨技术问题的状态。问题回答对了会总结一下这个问题,回答不上来也会讲解思路。体验很好。 微策略的面试是通过了,但是由于暑期实习名额有限,因此成了备胎。
4月 华为3月末做笔试,笔试题比较良心,得了300多分,但是面试就被安排去面嵌入式了,岗位被安排的完全不匹配。感觉华为的招聘有点乱,首先官网投递时候就分不清每个城市的具体岗位工作,其次感觉如果不加几个交流群,和部门的hr套近乎,很容易被安排。而且同样水平的人,如果之前和hr接触过,被录取的概率感觉也大。秋招的时候要盯紧华为的各个交流群了。。。
5月 在去做华为的心理测试那天中午,简历被阿里钉钉的人捞起来了,就突然来了一场视频交叉面。面经如下:
自我介绍 C++内存分区,重复释放同一块内存会出现什么问题 进程和线程的区别 什么是死锁 写代码1:Python写,一个有100个元素,奇偶交替的数组,找出最大的10个。(这是两个问题,首先要实现奇偶交替的数组,然后是TopK) 写代码2:由于我说C++水平一般,就给我出了一个反转链表的题 此次面试结束后,布置一个任务,在五一假期学一下Objective-C和IOS开发,假期结束后再面一下。现在来看,其实考察的是有没有一套合理的学习方法,包括学习目标的确定、学习资料的选择、学习成果的检验。而我只是快速看了一下OC的知识,然后写了一个小的APP,这可以说是入门了,但是对于钉钉的要求,是不够的。因此,面试跪。 可以说,暑期实习全线崩盘。5月在学习的过程中,又陆陆续续投了一些小公司的实习,也都没有回应。一度怀疑人生。同时,决定如果月末找不到实习,就准备秋招,反正大的公司不要,还有小的公司。这期间也反思了一下各个面试,发现还是缺少一些套路,比如项目经历的叙述格式(总分总,STAR),一些经典HR面的问题,而是觉得只要回答上技术问题就行。因此,也读了一些关于面试的书籍,调整了一下面试方法。
6月 有一些企业6月开始了提前批,投了VIVO、多益网络、字节跳动的提前批。VIVO投的是安卓开发,只是看到安卓开发的语言要求也有C++,就试着投了一下。VIVO的面经之前也写过,链接在下面: https://www.nowcoder.com/discuss/198861 也是没想到能够得到一个Offer,无论怎样,这是一次久违的胜利。 在VIVO面试之前,和同学聊了一下找工作的事情,觉得不应只专注于这些互联网企业,机械专业与计算机结合或许能发挥优势。因此投了中望龙腾的提前批,还有601所的暑期开放日活动。这两个的方向都是CAD开发相关。中望的面经如下: 电话面
自我介绍 项目介绍(军工项目,别指望我在牛客上说出来,哈哈哈) 用过什么设计模式(接连被问,在这轮面试结束后,我把工厂模式和单例模式的代码钉在办公室面前的墙上,之前墙上还有各种排序算法的代码,二叉树非递归遍历的代码) 平时有什么爱好,说的读书,类型科幻,然后让我推荐一本,我推了何夕的《天年》 C++小问题,在main()中sizeof(a),a是一个字符数组,和在一个函数中sizeof(a[]),输出的结果。(第一个我觉得应该是64,第二个和系统有关,64位x系统的输出是8) 排序问题:问一下快排和冒泡排序 反问:问了一下他们的业务和产品 现场面 去广州现场面试,先进行一小时的笔试,笔试题目都是C++相关的,而且在牛客网上刷到过原题。简答题部分有两道没做出来,第一个是如何输出代码的行数、所在文件和所在函数(结束后查了一下,不禁感叹)。还有一个是编码实现,判断一个点是否在椭球体内,这个不知道椭球体的公式无从下手。 随后的面试不涉及技术问题,只是对简历进行询问,问了项目,问我有没有从事过软件开发(简历上写了开发的项目)整个面试过程感觉对方的态度不是很好,对机械专业似乎有点歧视,觉得你没开发过软件来凑什么热闹的感觉。 这里不禁要感叹一下:互联网公司歧视机械出身的也就罢了,一个CAD软件公司,做出的产品被机械专业的人用,而且招聘要求里的专业要求有机械,为什么还歧视?我们研究所本来就是机械和计算机结合的,对CAD的了解可以说从使用和开发方面都有,这怎么还被专业方向匹配的公司的人歧视了?也许真的是我菜,不过也确实,现在研究所都做项目,没人研究,一切以赚钱为主。如果我不转行,老老实实跟着老师走,毕业后可能机械的工作都难找,还是要提升个人实力。 中望的现场面试就一轮,然后就让回去等结果。从网上搜到的信息,和之前电话面对方说的流程看,没有总监面和hr面,应该是跪了。不过,也算收获了一次经历,同时去广州转了转,见了见老同学,也可以了。 ———————————————更新————————————————————- 最后,中望软件还是跪了。不说什么了,归根结底还是自己能力需要再提高。
7月 投了多益网络和字节跳动的游戏专场。不出意外的笔试都跪了。多益网络跪的原因在于前面的小题不太扎实,字节跳动也有这方面的原因。因此接下来需要加强对选择题的练习,在暑期多刷刷题。 7月中旬去了航空工业沈阳飞机设计研究所的暑期开放日,也是想着1-6月那么惨,可能是因为就业方向有问题,于是不如走机械和计算机相关的岗位。总体感觉,如果想在沈阳定居养老,这个研究所是个不错的选择,如果想要赚钱,那么这里还是不要选了。我选择的是数字化设计仿真相关的部门,但是觉得在那里写代码,限制会很多。而且,总觉得自己和周遭格格不入,遂拒绝。
8月 这是一个不断刷题,不断面试,面到怀疑人生,面到自闭的月份。 阿里面试,可能是投的部门不好,智能制造部门,直接简历面跪,简历面没有问一个技术问题,面完就发感谢信,这算浪费了阿里一次校招机会吧。 随后是网易互娱。由于选择用他们的模拟笔试练手,然后全A,于是获得直通面试的资格。面的初级游戏研发,一面一直在怼技术,从C++基础,STL到操作系统到计算机网络,随后一道开放设计buff系统题,一道Leetcode上的等概率返回圆中某个点的问题。鄙人平生学的最不好的就是概率,痛恨概率问题,也没想着刷Leetcode上相关题目。后来略微总结一下,概率问题最常用的方法即为拒绝采样法,如果知道这一点,也不至于落得如此狼狈。更奇怪的是别人两轮技术面,我第二轮变成纯hr面,后来才意识到,这是劝退面吧。。。 接下来是拼多多学霸批。这个写过面经,链接如下: https://www.nowcoder.com/discuss/217106 学霸批最终跪了。有时候题做不出来,还没有强的项目,就容易跪。 然后是字节跳动后台C++面试,那是一个下暴雨的周日,从下午3点半到晚上8点,连续三轮的技术面试,每一轮结束后,都精疲力尽。最终,三面结束后10分钟,收到了面试未通过的信息。不得不说,多刷Leetcode有助于通过字节跳动面试算法题,我写到的所有题目,都是Leetcode的原题。不过,鄙人这种只有基础知识没有深入项目经历的选手,不能通过面试也是正常的。不过字节跳动的面试仿佛有毒,面试前各种拉肚子,面试结束后需要缓解1周才能走出阴影。 腾讯的前两次笔试,做到自闭,对我来说太难了。。。 所以,8月结束时,手里仍然只有一个能去的offer,于是不得不接着海投。。
9月 秋天也许是收获的季节吧。 本来没抱多大希望,投了拼多多的寻梦计划,意外的过了面试,在收到学霸批感谢信的第二天,收到了寻梦计划的意向书。所以有时候面试真的是玄学,看命。 随后,字节跳动北京的客户端岗位把我捞起来,进行了一轮面试。和面试官进行了一个小时亲切友好的交谈,从Leetcode上的LRU缓存题聊到数据结构,操作系统、计算机网络、加密学、数据库、设计模式,最后面试官给了一个进二面的忠告,然后第二天反手一个挂。然后和之前一样,我又缓了好几天才脱离字节跳动的毒。 之前投了小米的未来星,然后简历跪,随后开了一个C++工程师的正式批。小米的笔试和两轮面试难度适中,C++来看的话我只被问到过语言基础、算法题、操作系统,也许是和岗位有关吧,没问到计算机网络和数据库,随后,收获了第四个offer。 网易雷火第一批笔试正好在拼多多学霸批面试那天,所以推了一下笔试到9月。雷火的笔试总是那么强,4个小时6道题,前4道加起来满分100,后两道各50。相比于春季实习做的稀碎的笔试,这次勉强砍过了60分,进入面试。不过没抱着能通过的希望,只要能吃到网易的免费午餐就可以了。雷火面试每人打底两轮交叉技术面,由于没有游戏开发的经历,只和面试官就基础知识进行了愉快的交流后,就去吃午饭了。下午回来竟然意外的进入了3面,不过还是因为没有游戏开发的经历,最终三面跪了。此次面试结束后,决定再也不投游戏相关的岗位了。 接下来是华为面试,7月初投递的简历,终于在9月听到了回响。由于暑期实习被随机安排面试,这次决定提前找好大腿抱,选择了一个业务交流会上说“只要会C++”就行的部门。一面面试官从软件工程专业的角度对我进行考察,然而我并没有系统学过软件工程向专业知识,因此有的问题没有答上来。然后笔试复盘复盘的是3月暑期实习笔试的题,我全部用Python写的,这就有点尴尬了。后来手写算法题,没有考虑到特殊的测试样例,或者说,想复杂了,写的不是很好,好在一面过了。二面面试官终于问了点数据结构和C++基础的问题,然后出了一道Leetcode的单词搜索题,先让我说思路,然后问我能写吗?我回答,我试试吧。写出来后,面试官指出我在dfs的时候没有进行现场恢复,我一开始觉得他说得对,但是立刻意识到,我这个visited矩阵是vector的值传递,当递归结束时会自动进行现场恢复,而不是引用传递,于是便和面试官说明情况,面试官说,“我虽然不知道你这个vector是什么,但是我感觉和数组一样,是通过指针进行传递的,我也不太清楚你这个&符号是怎么回事balabala….”当时我心里一惊。。。不过貌似最后我把他说服了吧。。。三面结束后,10月收到了录用意向书。 广联达是在8月末那个怀疑人生的时期投的,想着好歹工资高点吧,然后通过了他们的text编程笔试(全部Leetcode原题,最后一题是买卖股票II,貌似)在一面中和面试官就C++基础,STL,操作系统等进行了亲切交流,然后让给出一个银行叫号软件的实现方案,随便答了一下队列、多线程、加锁互斥等;二面是HR面,进行了一些人生观价值观的亲切交流后,在国庆前收到了意向书。 腾讯的最后一次笔试,或许是来了一个大放水。最后两道题,我提交了针对边界测试用例的代码,没想到全通过了,收获了4.3的自己三次笔试的最高成绩。然后在月末,收到了光子的一面邀请。但是之前网易雷火面完后,我深刻意识到,做游戏实在是不合适,于是,这一轮面试,也面的稀碎,也是各种海量数据处理问题、概率问题。腾讯和百度一样,都是一轮游结束。想进一线大厂,对我来说还是太难了。。。 这个月还有同一时间段做阅文和英伟达笔试的经历,英伟达一面怼C语言库函数的学习经历。。。一个忙碌的月份
10月 10月主要是OPPO和TP-LINK的招聘流程,二者都是TEXT编程加选择题。OPPO的一轮技术面给我的感觉还是很专业的,就多个方面进行了亲切的交流,但是主管面真的是迷,不太理解为什么会是这样的迷,看来想集齐四大手机厂的Offer,还是太难了。 TP-LINK的一面就算法题复盘,简历项目,网络层以下的协议,C++基础等进行了亲切交流。然后二面就项目和兴趣进行了交流,最后收获了一棵白菜。
总结 这10个月下来,一个切身的感受就是,转行要趁早,秋招要趁早。 转行要趁早,这个行业的门槛不是很高,入门比较容易,但是深度的积累需要时间。毕竟计算机专业的人,花了7年左右的时间,而自己,只花了1年多,肯定会有很大差距。如果自己能再提前半年准备,可能就不会是现在这个样子。虽然能去的地方不算少,但是待遇,基本都一样。。。还是惋惜自己研二上学期的时光,就那么迷茫着,不务正业的浪费了。 秋招要趁早,否则最后只是别人(OPPO)刷kpi的牺牲品,越早投入,越早进入状态,相应的hc也会越多吧。 至于C++方向的转行攻略什么的,我这样的比不上大佬们,就不献丑了。不过还是推荐学习一下STL,浅层面来说,做算法题的时候使用STL提供的容器、算法(不想写二分法的时候可以用lower_bound)、仿函数(仿函数或者函数对象的应用是学过STL后才意识到的,十分有趣,有时也有用的一种应用),stringstream进行刷题,所获得的体验有时候可以和python媲美。深层面来说,《STL源码剖析》中对iterator_traits的设计,unrodered_map的设计,stack和queue对deque的封装,都是经典的设计案例。 秋招的上岸意味着一个新的开始,在保证能毕业的同时,还要保证未来不被淘汰,毕竟,水平上还差的很多。 截图留念:
作者:一只小火龙⁰ 链接:https://www.nowcoder.com/discuss/389483?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
1、C++熟悉吗(不熟悉,楼主一年多来都写的java了) 2、linux指令熟悉吗(只是了解):如何查找一个目录、如何替换文本中的关键字(楼主都不会,跪了)
3、然后面试官就不问了,扔了道算法给我做(需要AC测试用例) 此时我正以为是这是要没了。一问三不知 还好是lc原题。
手撕算法:归并排序求逆序对
然后又开始一堆我不会的知识
4、流媒体了解吗(不了解) 5、opengl了解吗(不懂)
6、红黑树了解吗,b+树了解吗 7、如何减少哈希冲突? 8、RPC的swift了解吗(没听过) 9、fork的作用是什么?为什么不用system啥啥啥(这东西我都没听过不懂是啥,有无懂的告诉我下)
10、平时玩游戏吗?玩什么游戏
这时候!我突然意识到了事情不太对劲了!难道是IEG?
11、云游戏是什么样的了解吗?
我突然慌了。怕不是真的是IEG。
12、然后又扔给我一道栈的算法题。让我用C++来做算法 (还好我C++老底还在,也是做出来了)
13、go语言了解吗(不懂) 14、C++智能指针知道吗(不知道) 15、私有继承的作用是什么?
16、if-else 和 switch在汇编层面相同吗
反问阶段,问面试官是哪个部门的,面试官说是IEG的,是做游戏云端的 我当时就是一喜啊,真的是IEG。当时面试表现实在是太差了,卑微大三狗只会发现基础知识背了一堆,还是写java的。所以问题基本没答上来。
作者:YF_WDS 链接:https://www.nowcoder.com/discuss/421418?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
首先就是简单的自我介绍和项目提问,时间也不会很长,10~20分钟吧。 然后给我出了一个题,二叉搜索树的节点删除(leetcode 450),耻辱题,不会做。 确实很难想象一个很基础的题当时我没做出来,我最近一个月脑袋都不太清醒,很疲惫(说到底还是菜)。当时脑子里第一印象是扯到红黑树了,然后直接就被唬住了,其实就是个二叉搜索树。第二印象是分有无左右节点、有无父节点来讨论,乱成一锅粥了,一个很好的解法是递归,简单明了。 在此必须要给面试官点个赞,他一定是个大帅哥。我思路乱了好久,最后他主动说我们来讨论一下(相当于给我指路了),分了几种情况讨论,然后因为时间原因让我仅写了一种情况。 问题阶段我很沮丧,我问接下来还有机会吗?他鼓励我说肯定是有的,还说这题没做出来没关系的,我们就是讨论嘛,思路不清晰的时候我们一起讨论讨论就可以了,没关系的。真的是超级赞。
作者:YF_WDS 链接:https://www.nowcoder.com/discuss/421418?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
首先就是简单的自我介绍和项目提问,时间也不会很长,10-20分钟吧。 然后就是出题,数组中重复的数和丢失的数,题意大概是这样的:长为N的数组中,每个值都是1-N范围内的,现在有某个数字出现了两次,某个数字丢失了,其他的数字仅出现一次,求重复的数和丢失的数。
一开始的版本很简单,情景是说顺序写数字的时候写错了,如[1,2,3,4]写成了[1,2,3,3]或[1,2,4,4],然后求解。这个就是顺序求解,因为是顺序写的,而且出错的两个数字时相邻的,很有规律。 然后问了有没有什么特殊的case,如果你来评判这个程序,你将怎么样设置case来测试?加上了长度过小的判断、写了几种例子。 题目变化。假设现在写错的数字和重复的数字没有规律,怎么求解?我说记录每一个数字出现的次数,然后出现0次和2次的数字就是结果。面试官说你先写吧,然后我就写了。 题目变化。假设现在不允许使用额外空间,怎么搞。我就说交换数字,写了代码。 面试官说了手写一下swap,也没难度,写了。然后***来了,我说其实还有不用额外空间进行交换的方法(异或实现swap)。可能声音太小没说清楚,面试官说既然你都这么说了,那么就写一下吧,如何不用额外空间、不交换数组值解决这题(此时面试官已经说了我们再来看一道题,但就此改变主意了)。我一脸懵逼,我说的不是这个啊!而且我还想不到方法,我给自己挖坑了啊!遂努力回想、努力转动脑子、经面试官提醒,说出了乘以负一的解法,因时间关系没有继续写代码。
首先就是简单的自我介绍和项目提问,时间也不会很长,10-20分钟吧。 然后面试官竟然问了我一些C++的基础知识(因为我介绍说主要用C++,其它的不会)。我有点懵了,因为印象中微软不会问这些的……当然问的也比较基础,微软面试还是比较注重基础的。 然后出了一道题,大数加法(字符串表示)。挺基础的题,很快就写完了。 面试官又问,你会怎么设置case来测试程序呢?我说非法字符串(非数字),面试官问你怎么处理?我说在把错误信息包在返回值字符串中,返回一个“error”。面试官问为啥不用异常呢?我说平时很少用……我还是菜啊。 又说了一些case,比如前导0啊,进位啊啥的。 最后面试官又问我负数怎么处理(比如“-1234”+“345”),我扯了半天也说的磕磕绊绊,现场想了一个办法,但感觉很挫。面试官说你可能是想复杂了,回去再想想吧。我到现在也没想出来……一个负数、两个负数、结果有正有负感觉情况太多了。 问题阶段问了几个问题。
作者:顶天立地大头葱 链接:https://www.nowcoder.com/discuss/419743?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
2020.4.14 晚7点半,简历面,钉钉视频,1个半小时 0.自我介绍; 1.项目半小时:简单介绍项目,面试官挖的很深,好几个问题都把我问倒了,然后建议我把项目吃透; 2.基础超过半小时: (1)static的作用; (2)四种cast; (3)vector和list底层和区别,常用的函数,resize(),reserve(); (4)C++11新特性了解吗?经常用到的说一说;深入问了lamda函数; (5)C++源代码到可执行程序过程; (6)进程和线程,用过哪个通信方式; 还有一些记得不是特别清楚啦 😂但应该不难,都比较基础。 3.手撕:给定一个百万量级数组,删除其中等于某个值的所有元素,面试官引导我利用快排思想解决,当时没完全写出来,后来写出来钉钉发给他了。
2020.4.17 下午5点,不太清除是什么面,师兄说是主管windows/mac/ios的大佬,暂且称为二面叭。。。钉钉视频,1小时 全程不问基础,基本都是聊本科到研究生的学习,科研等 (1)看过什么书?怎么学习? (2)本科到硕士最有成就的一件事,为啥? (3)为什么选择钉钉?你对哪一块比较感兴趣? (4)看过源码库吗? (5)你觉得自己做过最有意义的项目是什么?为啥? (6)发过什么论文期刊? 楼主很菜,当时还没看过源码库,但是表示自己从现在开始看!之后花三天把《STL源码剖析》(b站有侯捷老师的视频,大家可以搜一搜)。最后我问面试官觉得我能过吗,他说我的项目经历对于他来说太少了,我当时心里一凉,解释了一下:自己不是CS专业,但是本科做过基金立项,整个项目都是自己和另外一个队友完成的,研究生跟着老师做项目,自己2月做了很简单的web服务器,如果面试官觉得不够,后面一定会多做项目,希望能给个机会(大概这个意思)。然后面试官给我十分钟推销一下自己,当时就是很紧张,没有说的很好,后来写了600字自我介绍钉钉发给面试官。
(揪心的等待了四五天,终于二面面试官通知我过了,让我保持手机畅通,随时可能会三面😅非常感谢面试官,给了我一次机会)
2020.4.23 12点,交叉面,电话,中国速度15min 12点左右,突然从北京来了电话,告知我是钉钉那边安排的交叉面面试官,面试官估计赶着吃饭,很快就结束了hhh 1.自我介绍; 2.http响应状态码; 3.https了解吗? 4.指针和引用的区别; 5.说一下自己印象最深的项目,流程; 6.有什么想问的?
2020.4.24 晚7点,leader面,钉钉语音,🚀速度9min 1.前面几面觉得自己学到了什么? 2.还有其他面试,offer吗? 3.如果其他公司也给offer怎么选择? 4.对钉钉了解多少? 5.有什么想问的?
2020.4.26 下午3点,钉钉视频 HR面,很随意的聊了一些学习生活上的问题。 总结一下,相比OPPO,阿里面试给我体验很不错,注重基础,速度也算比较快,二面是一个坎,只要抗住压力,后面几面就比较轻松了。一面面试官个人感觉最好,很耐心地给我提出建议,还不嫌弃我手撕算法时候蜗牛一样的速度 🤣
作者:天将降Offer于斯人也! 链接:https://www.nowcoder.com/discuss/414662?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
一、阿里CBU一面(32min) 一面是简历面,主要是针对简历上的经历及问题,进行一个全方位的问答。 1、自我介绍 2、针对简历的详细介绍 3、反问
二、阿里CBU二面(45min) 1、自我介绍 2、项目详细介绍 3、双向链表的常见操作实现过程 4、常用排序算法的思想介绍 5、算法题:现有若干个不同面额的硬币,有a b, c, d等,现想凑出一个值为x的数目,问那种方法需要的硬币数目最少。(先说了思路,然后针对思路的不足进行了优化) 6、逻辑题:有好多根不同长度、不均匀的绳子,从一端烧到另一端的时间为60s,现在想精准计算到45s,有什么思路? 7、假设你写了一段代码,这些代码依赖一些静态库,编译时出现比如:”undefined reference“,这个时候你怎么去解决这个问题? 8、反问 【1】工作内容 【2】团队规模与分工 【3】面试流程
三、阿里交叉面(33min) 1、自我介绍 2、交流经历详细介绍 3、项目详细介绍 4、C++相关:虚函数 5、C++相关:overload与override的区别 6、反问 【1】后续面试流程 【2】程序员行业的发展路线
四、阿里CBU HR面(33min) 1、研究生阶段的研究背景,以及各个项目的介绍 2、本科专业选择的理由 3、为何选择研究生研究方向,以及为何选择现在的研究生导师 4、项目中角色解析,以及项目价值 5、项目中的收获 6、项目中遇到什么问题,以及怎么解决的 7、导师对项目有何期待,以及对你个人的看法 8、各个奖项中,你觉得最有意思的是哪个 9、现在有哪些offer,怎么区分 10、个人的职业规划 11、反问。
本次面试面的是CBU技术部的工程策略团队的职位,阿里面试节奏一如既往的慢,前前后后都快一个月了,好在面试官还是比较nice,没怎么为难我,也很爽快。
最后祝各位面试顺利,早日喜提offer。
作者:料稍稍 链接:https://www.nowcoder.com/discuss/405599?type=post&order=time&pos=&page=2&channel=1009&source_id=search_post&subType=2 来源:牛客网
百度一面 4.11 C++开发 50min
项目,问了下华为比赛流程
华为比赛是偏算法的,为啥不找算法岗
为啥本科没实习
Q:常用STL容器
A:vector,支持下标,内存连续,resize,capacity,摊还分析push_back
Q:vector与list元素个数相同,遍历一遍,哪个快
A:vector更快,list需要指针,vector是连续内存,因为有L1L2L3缓存,可以更快
Q:为什么更快
A:缓存层级,金字塔,经常使用的话放在更上一层缓存,读取就更快
Q:CPU高速缓存的逻辑
A:经常使用的数据放在更高的缓存,如果在缓冲中没找到,就用LRU这种缓存置换算法
Q:unordered_map与map
A:红黑树,特殊的BST,有序
Q:(打断)红黑树是啥结构
A:巴拉巴拉
Q:与AVL树的区别
A:AVL是严格平衡,旋转可能更多,红黑树的优势在于稳定性,插入和删除都是O(logn)
Q:说说哈希表
A:哈希冲突,开链法,开放地址法,退化成链表,装载因子,质数,rehash巴拉巴拉
Q:如果哈希函数很烂,很多元素挂在一个槽的链表里面,有什么优化措施吗
A:不用链表用红黑树
Q:开放寻址法怎么删除元素
A:不能直接删,得做个删除标记
Q:如果删除了很多元素怎么办
A:重新哈希一遍(重新再插一遍)
Q:还知道其他的数据结构,插入与删除效率比较高
A:跳表巴拉巴拉(根据极客时间的知识点说的)
手撕代码:实现String(推荐陈硕大神写的面试中常见的string的写法
信号量与条件变量的区别
Atomic内存序(不太记得了)
你还知道什么了解的比较深的(拥塞控制算法bbr巴拉巴拉
在一个函数调用前后打印时间戳计算时间,一个函数调用内第一行和最后一行打印时间戳计算时间,如果两种时间相差很大,有什么原因(以为是函数栈帧方面的底层,但其实是拷贝传参,析构局部变量可能很耗时)
总结:不算很难,很多问题我都可以展开讲很多。最后一个问题挺有意思的,面试的时候没想到,面试官还提示说你肯定知道,但是忘记了。最后评价我还是挺优秀的,除了一些细节,等一下就去二面吧。
百度二面 4.11 50min
个人介绍
条件断点和打日志是怎么操作的,举个例子(官方给了一个通过线上调度器打印的日志,里面是每一秒全地图的道路信息,我用自己复现的调度器,与它diff,发现在第1000行,在road_id=2000的道路,第15号槽,两个日志不一样,于是就可以在IDE中做条件断点巴拉巴拉)
网络分层模型(OSI七层,也有四层的说法,但一般说五层)
TCP与UDP是哪层,有什么区别(巴拉巴拉
如果传输文件用TCP还是UDP(想可靠就TCP,想快速就UDP
如果UDP怎么做简单的可靠传输(我说校验和,他说行
HTTP在哪层,HTTPS多了什么(TLS握手,交换非对称密钥,巴拉巴拉
加密算法了解多少(对称、非对称、签名巴拉巴拉
指针与引用的区别
内存中,堆和栈的区别,底层是什么数据结构,栈的最大值是多少
new和malloc的区别
delete和free的区别(与new和malloc差不多,C中malloc和free是一对,C++中new和delete是一对,delete先析构对象再回收内存,里面会调用free)
手撕代码:
1)面向对象,写三个class,动物、狗、猫,你自己发挥(访问控制权限符、virtual、多态、虚析构巴拉巴拉,然后解释了一下)
重写和重载的区别,在刚才的class里随便实现一下重载
2)写个二分查找的函数,用main函数调用,一次性work了
总结:也不算特别难,挺基础的问题,这时候已经一点多了,让我先去吃个饭,然后三面
百度三面 4.11 35min
自我介绍
static关键字与public与private的区别(这完全是两个范畴吧。。一个是修饰静态,一个是访问控制修饰符,全部解释了一遍)
public与private的区别(公开、私有巴拉巴拉)
new,先执行父类构造还是先执行子类构造(先父类再子类)
父类与子类的函数名可以相同吗(虚函数用同名函数可以实现多态,非虚会重定义)
重载与重写的区别(二面刚问过。。)
手撕代码:给你一个每行包含url的文件,统计出现最多的10个url
我不太记得文件操作的API了,string的分割也忘了,最后允许我化简成了关于url的数组,我先是用map记录了每个url与其出现的次数,然后构造一个最大堆(后来才发现我构造的是最小堆,cmp那总是记反-_-),堆元素是一个pair,记录着url与其出现次数,自定义了比较函数,比较出现次数(也就是pair的第二项)
说说冒泡排序、快速排序、堆排序在这种联机情况下的区别(也就是一边输入,一边得到当前的topk)
比赛中你的角色是什么,人员有流失吗
对数据库熟悉吗
对Linux熟悉吗
比赛是偏向于创新性、演示性还是工程应用?
总结:第一次三次面试连在一起,中间只用了十五分钟吃了个午饭。虽然每轮都有手撕代码,但都不难,也有可能时间限制,没法出太难的算法题,问的问题也偏向于基础,还是挺轻松的。
能不能集齐BAT召唤神龙呢
4.22更新 收到短信,自称百度工程师要加我微信,说我被分到他的组里,在微信上断断续续说了几句话(估计很忙没时间),要我等hr通知
4.30更新 百度工程师在微信上突然跟我说北京解封了,问我什么时候过去,我说可能会选择其他公司。他问你就放弃百度offer了吗,我说从未收到何谈放弃,过了一会hr就打电话来了,没说部门岗位,例行公事般的说了薪资,最后问我去不去,我当时就婉拒了,hr好像知道我的答案也没说什么
这里跟牛油说下为什么我不去:北京,百度,被动分组,我也没问那边是什么组,他也没告诉我是什么组,看上去很忙的样子,对比腾讯阿里面试官的热情,我对百度的这个offer不是很感兴趣。
好了,bat三杀了,祝牛油们好运
作者:万千offer我只要十个 链接:https://www.nowcoder.com/discuss/402792?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
第三面 流程出问题了,所以开始了第四面。
第四面 10多分钟,面试官说了那句,典型的非科班。结果就是面试成绩不理想,继续第五面。
开始第五面之前,我把计网、数据库、系统的笔记都看了一遍。。。 第五面 全程写代码,计算机方面的其他知识都没问。。。防不胜防啊。。 1.实现个队列 2.写段程序说明虚函数的动态绑定 3.虚函数表在内存中是什么样子的?(不知道) 4.写过多线程吗?(不会,之前是搞图像的)
- printf(“hello”) 是怎么能在电脑上显示hello的?(不知道,一脸懵)
- qt底层是如何实现图像界面的?大概是这个意思 (不知道)
作者:function<void()> 链接:https://www.nowcoder.com/discuss/401252?type=post&order=time&pos=&page=1&channel=1009&source_id=search_post&subType=2 来源:牛客网
专硕研二,本硕 985,leetcode 只把前三百刷了三遍。最近在找第二份实习,面了几家,记录一下,分享一些经验。目前到 hr 和 拿到的只有三个:腾讯、字节、虎牙,事实上到 hr 也不一定有 offer,今年各公司养鱼比较多。中途放弃的有:阿里云、快手。笔试没做的:网易、百度。挂了的:WXG、钉钉。没消息的:bigo、猿辅导。
投的岗位基本都是 C++ 后端,感受是选择还是挺少的,只有各大厂的基础架构之类的部门有一些。对于 C++ 岗,大厂面试比较注重基础和底层一些的项目,阿里云和腾讯云基本每一面都一直在问网络和操作系统,不过也都是 UNP 里面涵盖了的内容,并且被多次问到有没有一些性能调优的经验。小厂喜欢问语言,虎牙基本每一面都是围绕 C++ 特性在问。除此之外最重要的一部分是算法,字节每一轮都是先写一两道题,题写出来了后面怎么都好说,不是很难,写不出来可能就悬了。
主要面了四家,难度排行大概是:阿里云 > 字节 > 腾讯云 > 虎牙。没过的和面的不好的原因都是面试官觉得缺乏大型的或者底层的工程项目经验(别信宣传的什么经验不重要,应届生只看重基础…)。应届生面试最重要的三部分:基础、算法、项目,都很重要,一个都不能少。时间空闲的话可以都投投多面面,不用担心挂了会留下记录啥的,上面这些厂我去年基本都挂过了,我觉得问题不是很大。面试可以快速找到自己的问题,查缺补漏,像阿里面试第一轮就是 P7,而只在学校做一些没啥用的水项目是很难接触到业界的大牛工程师去交流的。面完了反问环节可以问问面试官对自己的一些建议之类的,每个人都不一样,比单纯看面经学习效果好。
附虎牙面经。
虎牙面经 开始一面的时候已经过了腾讯和字节,所以面的比较随缘。
一面(40 min): 自我介绍。 介绍一个实习的项目,没细问。 C++11;看过哪些 C++ 书;STL 内存分配;模版用过吗。 多态实现;构造函数的构造过程。 static 变量什么时候初始化;类中有 static 变量会不会有线程不安全问题。 unordered_map / map,迭代器失效问题。 vector push_back 均摊复杂度计算。 TCP 优雅关闭连接过程。 场景题:设计高效存储结构,实现直播打榜两个需求:加分;取 top k。复杂度分析。 面试官建议:后台是很好的方向,但是最好也了解一些机器学习、大数据之类的东西。
二面(40 min): 自我介绍,为什么转行。 用过哪些 C++ 容器;有没有用过 unordered_map。 unordered_map / map 区别;什么时候用哈希容器;除了无序之外呢。 熟悉网络编程吗;epoll 实现上有什么数据结构;为什么用红黑树不用哈希表。 C++ 11 有哪些新特性;对 11 之后的了解吗;协程这些了解吗。 tcp / udp 区别;分别适用场景;DNS 用的是 tcp 还是 udp;DNS 服务器负载指的是什么资源;你觉得 DNS 服务器 cpu / 带宽 / 内存,瓶颈在哪方面;迅雷 p2p 下载用的是 tcp 还是 udp。 进程和线程的区别;线程共有的数据包括哪些;条件变量为什么要和互斥锁一起使用。 场景题:直播弹幕敏感词检测,有十万个长度为 1 ~ 30 的敏感词,弹幕每条也为 1 ~ 30 长度,设计存储结构。我说用 trie 树,对敏感词所有的字取集合作为节点分支。面试官又加了难度,有用户为了规避检测,会打出拼音,怎么设计。不会了。 面试官建议:多思考为什么。 没见过的环节:对这次面试做个反馈,懵了。
三面(20 min): 面试官推迟了两次,在开会。 在学校吗还是在家。 说说实习做了啥,三个东西都简单说了下。 做的东西是算法的还是工程的。 gRPC 底层是啥;怎么工作的;了解一些微服务吗。 常用啥语言; C++ 怎么避免内存泄露问题;智能指针有哪几种;智能指针怎么实现的。 看你写了个服务器,说一下;多线程的是吧,C++ 线程怎么创建;怎么保证线程安全。 了解一些数据库、缓存吗,mysql,redis。 最近在看什么书。 职业规划,算法还是开发。