Aguirre 发表于 2018-9-10 10:28:19

阿里简历面+一二面挂经,顺便附上腾讯挂经

阿里算是秋招第一战吧,虽然开门挂,之前有个腾讯的不过让我做了一堆算法一看我用java写的就跪了,感觉不算面试23333
上上周投的阿里优酷内推一直没消息,今天还在跟人调侃呢突然临下班来了电话说是要简单了解下我15min结果实际上是30min。。。害怕
问:项目,印象深刻的地方,认为有挑战的点
答:基本没啥挑战都是增删改查,强行编了个难点,dalao不感兴趣就pass了
问:你的优势
答:吹了半天逼,又说自己好学啥的
问:你最近学了啥?
答:学了美团的唯一id生成,用的snowflakes,简单讲了下原理
问:单点么?量大了怎么办?
答:按中间那段workId分机器生成
问:java的线程安全queue需要注意的点
答:注意大小,阻塞添加和取操作
问:加锁需要注意什么
答:注意粒度大小,能无锁的地方尽量无锁
问:java能想到啥无锁的
答:copyonrightArraylsit,读写间不加锁,又联想到mysql的mvcc读写不加锁
问:操作系统层面的无锁了解么
答:当时没想出来,其实有可能想问我cas来着。。。。
问:就着刚才项目里问的数据库索引了解原理么?
答:从b+树说b+和b比的优势,又提到了innodb和myisam之间聚簇索引和非聚簇索引之间的区别,优缺点,实际上还可以扯扯hash,联合索引,前缀匹配啥的
问:java相关的框架了解哪些
答:spring,springboot,springcloud,mybatis,thrift啥的
问:spring了解些啥?
答:ioc,aop的原理,顺便说了下ioc的好处
问:大量日志去重怎么弄
答:之前没准备过也没遇到过,就说的按关键字hash去重,如按时间之类的,估计说的不对。。。。
问:大量整数排序
答:问了是int,觉得直接用bitmap就完了
问:bitmap存不下的大数呢?
答:分段排序后连起来
问:如果大部分有序呢?
答:先把无序的部分挑出来,然后一个一个再插进去。
问:spark,hadoop啥的用过没?
答:没,大哥我弄业务开发的
问:有什么问的?
答:。。。
-------------------------------------------------------------------------------------------------
哈哈哈,就算被虐的想从大楼跳出去自尽也要更新面经,这就是我的忍道(滑稽)
一周后被约现场面,楼挺大的2333
一面:
Q:自我介绍
A:。。。。。
Q:场景题,hot视频推荐,数据包括视频id和用户id,分析出一小时区间的topK视频,要去重
A:普通topk呗,先分再取每个分区的topk再合并
Q:不知道视频分类只知道id,怎么分要具体
A:根据视频idhash来分,分别取分别算
Q:怎么分析一小时的,用户一小时内看两次只算一次
A:每个hash里用hashmap存,每个视频存bitmap去重
Q:有什么优化的点
A:没好好利用时间段的条件导致每次都要重新分析,觉得可以保留每分钟的topk数据来合并
Q:去重呢?去重你不管了?
A:存储每分钟的bitmap进行统计
Q:你确定是一小时的全部计算么?还是怎么弄?
A:应该是整小时的数据统计去除外面的数值还有计算新数值
Q:你确定么?
A:我错了,应该着眼于如何去掉窗口外的数据,每次存排序用的数据和当前分钟的数据,排序以分钟为粒度
,先用窗口外的结果和当前一分钟的信息去重,然后用前一分钟的topk数据和这一分钟的数据取并集在和前面的去重bitmap取差集
Q:那么计算是怎么算呢?算的过程中来新数据怎么算?
A:只按点搜索的时间段来计算,当前时间段只返回时间段起始时计算的推送值,推送计算做成定时任务(如1min粒度)
Q:好吧,做个算法题吧,字符串求最长重复子串(明显对我刚才的答案不满意,对我的低智商无语了)
A:想了半天弄了个n^2的笨方法,面试官提示我应该从第一个字符开始取后缀串然后排字典序,结果还是没想出来,说是让我等会下一面
我在会议室里想着自己为什么这么笨,等了一会面试官来了
二面
Q:自我介绍
A:。。。。。
Q:双栈队列
A:普通解法写了
Q:有没有啥优化
A:对于服务来说单次调用时间太长无法忍受,可以对插入的那个栈作限制,超过一定数量强制推到另一个栈中减小最大停顿
Q:链表快排
A:想了半天,憋出个垃圾解法,用从左到右遍历求出第一个比对比位大的和最后一个比对比位小的对换,然后改变左右限继续遍历直到相遇即为一次调整,然后继续
Q:是对换值还是对象
A:对换对象可以记录每一个上一节点即可
Q:有啥问的么? A:“知道自己挂了” 为啥不问我基础知识啊
面试官:因为mysql啊mybatis啥的我们也不用啊,我们做视频广告推送和推荐的
我:。。。
Q:还有啥要问的?
A:“濒临崩溃” 接下来面试是技术还是hr?
面试官:还有一面技术吧
然后到此为止
总结:项目中用到的公司内部的一些组件不能只看看大概,一定要配合场景思考并学习具体是怎么解决的,如常见的并发,去重,单点,failover等场景
场景题要考虑周全不要学个topk简单解法就结束了
算法题不会做,就是傻还懒练得少
感言:秋招真的绝望,美团被leader各种暗示不给转正流程让我校招,心凉离职,然后去隔壁阿里大楼被虐的体无完肤还全是自己的问题
这里还是要谢谢面试官,这辈子没见过这么有耐心这么和蔼可亲的人了,非常想在他地下做事跟着他学技术,可惜我没那个资格
另外优酷很缺算法的,各位dalao可以投一哈,面试官还让我介绍人选2333,唉越想越心疼。。。
腾讯挂经:
腾讯有一点很好,简历一选秋招自动投递,然后面试官发短信说是要面试+在线笔试,提前在公司找了个地方后开始
面试官:给你个网址,自己做题去吧,45min时限,用C++作答
我:???我不是简历里写的java么???,算了先写
题目5道算法一个sql
算法:
1.二叉树非递归后序遍历
2.旋转数组
3.链表倒数第n个节点
4.找出数组中重复数字
5.简单字符转换
sql:用groupby的简单sql
写完了传给面试官,就告诉我等消息,第二天被拒
有可能真的不要java的吧。。。。。

转载自:https://www.nowcoder.com/discuss/90407
页: [1]
查看完整版本: 阿里简历面+一二面挂经,顺便附上腾讯挂经