由于小米手机装机自带一点资讯,所以成了一点的用户,用了一两次之后发现还可以,于是没有卸载,后来又装了今日头条进行比对,发现新闻内容质量上一点还是要好不少,而且整个用户体验也是一点偏好,果断卸载头条,表示搞不懂头条花了那么多钱搞那么多噱头怎么产品居然是这样。
笔试
奇怪的电梯:每层电梯只有四个按键,上,下,开,关,每层楼对应一个数字,这个数字即为该层向上或者向下的层数。给定起始层,目标层,问从起始层到达目标层最少按几次按键。(通俗解法应该是广搜,但是我脑洞比较奇怪,居然用了深搜,幸亏测试数据不强,不然我估计过不了)。
二进制1的个数:给定一个数字n,求1到n这n个数,把每个数化成二进制的1的个数的总和。(对于某个数,统计1的个数利用了n&(n-1),不过这个题好像有其他解法,不是这样的暴力,而是去找规律,当时反正我暴力一下出来了就没管)。
一面
一面面的不理想,比较一般吧,不过还好是渐入佳境的感觉。一面的面试官比较年轻,不过问的东西倒是蛮底层的,C++在求sizeof的时候引用占不占空间,引用和指针有什么区别,引用在编译阶段是如何实现;C++虚函数表的表项有哪些,会不会有标识该函数属于哪个类的标记;接下来算是智力题吧,rand10如何生成rand5,rand5如何生成rand10,;然后再写一个二叉搜索树转换成双向链表的题,面试官说我的代码跑用例可以会过,不过不够简洁,很多路径可以合并。
二面
坎坎坷坷地过了一面,没想到二面很轻松,这可能和我的笔试成绩有关(当时在签到单上偷看到笔试成绩居然排在第四),二面面试官人很活泼,不过通过表象我可以看出他其实应该是一个比较强势,脑子灵活,对手下人要求也会比较高的一个人,进来就给我出了两道题:第一道是个建模题,假设公司有5000人,在一层吃饭,设计至少多少把椅子合适(这可咋整,这题我答的比较烂,强加了一些假设,并没有总结出任何数学模型来);第二题异常简单,上台阶一次可以走1步或者2步,那么上到100层台阶一共可以有多少种方法,这题斐波那契数列做烂了啊。
出乎我意料,二面老大觉得我不错,但是我仅仅答了两题而已,难道是气场和我很搭,还加了我微信,说我基础不错,我真的是受宠若惊,然后就谈offer了,真的是高效的可以。
HR面
HR听说二面老大都加了微信了,那也没啥好面的了,就是简单聊聊天,了解了解情况,简单愉快。