update: 3/24 下午三点收到约四面的电话了,没想到能过三面555
分割线--------------------------------------------------------------------------------------------------------------
一面二面没啥难度,之前面完忘了记面经了。
简历是在boss上投的,上周约的今天三面,当时面试官就说提前准备好zoom。(听到用zoom不用如流就感觉有点奇怪
面试一开始,一看面试官就感觉级别应该挺高的...也没让自我介绍,直接问能不能共享屏幕,共享后直接说先做一下题吧。
第一题就是翻转链表;第二题就是字符串的全排列,这里有段代码逻辑有点冗余,写完面试官说你这里逻辑有点重复了,改一下;第三题是数组中的逆序对,写完归并排序的基本结构后逆序对计数那里有点bug,面试官指出后改了。
然后面试官说聊一下其他的吧。本以为是要聊项目或者问基础知识的,没想到直接说如果让你设计一个推荐系统你会怎么设计?比如百度app在用户登录时会有一些推荐,或者类似头条的新闻推荐。
那这个APP有什么功能呢,就是用户登录后给用户推送一些信息流吗?对,你可以先理解为微博的那种news feed。听到这里想起了同学最近看的系统设计网课...然后就开始和面试官扯要实现的功能了。既然是要在用户登录时更新关注的人的动态,可以每次登录的时候发一个请求,把关注列表里的所有人的最近十条动态整合一下,在这里面抽出最新的十条更新动态。那这样你数据库查询太多了,怎么优化?可以把一些动态放到redis中。但redis内存是有限的,还能再减少数据库的访问次数吗?那可以改成每个用户发动态的时候相