本来之前教育一面没过,投了没几天有点后悔了,感觉广告更没啥希望能过,后面春招的时候面试记录也不好看,不过最后还是没好意思取消。
一开始还是自我介绍,这次比面教育的时候多了一个这段时间在慕课网学的基于springboot的微信点餐系统的项目经历。
自我介绍完面试官没问别的,直接说做一下题。
第一道题是个简单的滑动窗口:
Input: S = "ADXBECYDEBAXCXY", T = "ABC" Output: "BAXC" 包含T里所有字母的 S最小子串 假设T没有重复字母 不考虑顺序
第二道题就有点懵了...一开始想着数据量较大是指像LeetCode上区间合并的题目一样数组多一些,没想是真的日志文件...想了一下排序后数重叠区间个数的思路,面试官直接说不用排序,想一下有没有不用排序的思路。想了一段时间还是没思路就放弃了。后来反问建议的时候面试官提了第二题的思路,一天的秒数是有限的,可以用秒做key。
描述信息 已知一天内用户登录登出的日志(数据量较大),求这一天用户在线的最大峰值和持续时间段 日志包含字段(userid, login_time, logout_time) 登录登出时间精确到秒
第三道题是智力题,这个挺久以前在牛客看到过一个智力题总结的帖子,但当时看的时候也没在意,觉得一般也不会出智力题...刚看题的时候有点懵,不过稍微想起了之前总结帖这里需要排除一些肯定不是最快的马,最后草稿纸上画了画总算算出来了。
条件: 1.64匹马 2.8个赛道 3.每次比赛只能知道比赛结果名次,不能知道具体时间 求: 用最少的比赛次数,找出最快的4匹
然后面试官开始问基础知识,先问了数据库的范式,我说了一二三范式分别是属性原子性约束、字段唯一性约束、字段冗余性约束,面试官说有点问题,让我回头再看看。然后问如何设计表,设计几个表,什么做主键,为什么这么设计?
Exp. 学号、姓名、系名、系主任、课名、分数 怎么设计表
然后问用过Redis吗,我说就最近做的点餐系统有用过,课程里面模拟秒杀讲过用redis的SETNX和GETSET做锁。面试官就问了SETNX的含义,需要传几个参数,返回值是什么,以及应用场景。我就说了一下在项目里面如何加锁的,先判断能不能拿到锁,然后判断锁有没有过期,过期的话有可能两个线程同时要拿锁怎么处理。
然后面试官问java的垃圾回收算法,我问是要讲一下垃圾回收器吗,然后开始说Serial、Par New,CMS,G1收集器。
最后我还以为还有问题,结果面试官说就到这了,问我有什么想问的吗。我就问了一下对我这次面试的评价和建议。
面试官说评价就不说了,建议的话就说了一下第二题的思路,说基础知识还可以,不过这次问的也不多(确实...毕竟计网都没问)
第二题没做出来,感觉是凉了...(之前看牛客上有说字节有算法题没做出来基本就凉了)
ps: 面试一个小时后hr打电话约二面了,属实没想到。
hr开始先说面试官评价可能刷过不少题,见过的题可能做得很快,但没见过的题目可能就没啥思路或者会思考一段时间。基础知识深度差点(我寻思也没问多少基础知识...),广度还行,约一下二面的时间。
有点明白自己上一次教育一面也是有一道题没做出来但没过,这次却过了了。可能是这次面试官比较好心,第二题没做出来之后给了一次机会,看第三题我不像之前做过但做出来了,还行,给了次机会。
全部评论
(7) 回帖