小红书一二三面面经

小红书 后端一面 
我是小红书这边的那个面试官,然后你先做一下自我介绍吧;
你那个我看你有一份实习,他最后为什么没有继续在那实习了?
你可以介绍一个你觉得做的还不错的一块项目后的一个功能。对,可以展开说一下。
Dubbo go nacos mutil protocol 支持 讲了一大堆,面试官没有追问。
你这个开源的社区,你是主动的加入进去,还是一个什么契机去参加?
刚才说到你这个issue,是分配给你是他那边有一个比较成熟的一个管理模式吗?
那你做开源项目的时候,有没有什么在代码的一些规范质量上有有一些收获?
我看你有接触过数据库相关的一些东西,redis这边你感觉对哪一个数据结构比较熟悉呢?
hash、
它大概是怎么实现的。有了解过吗?
吟唱 结构体,hash冲突,开放寻址拉链,负载因子,渐进式 扩容,缩容,对齐内存减少内存碎片化;
渐进式迁移是怎么个做法?
OK,就相当于是扩容过程中需要维护两个? 对
这个原地扩容是什么场景下会触发,以及他是怎么做的。
Mysql 这边的话了解吗?可以说一下,我执行一条查询语句,对mysql里面大概是怎么运行的?
那你了解mysql l里面的一些事物的隔离级别都有哪些吗?
可以比较简单的去说一下他们的一些区别跟一些使用场景?
主流的一般是用哪个级别?
另外就是索引的话,你觉得你建表的时候创建这个索引一般怎么会考虑?
联合索引,最左匹配,覆盖索引避免回表,男女性别类型字段需要注意等等

lc:1.大于target的最小数组长度
2.删除链表倒数n个节点
实习大概多久,常规问题,秋招怎么平衡(不耽误公司进度自己偷偷努力)

反问:
这个平台这个业务是啥?
11.40面完 下午2点约二面~

小红书 后端二面 
直接共享 lc写题,有一个需要注意的点,大家面试前一定要换一个新号做leetcode,不然老号容易被逮到
最长递增子序列+二叉树展开为链表  撕了
然后计算机网络中有 TCP 还有 UDP 两个协议,它们最主要的区别是?
你说tcp是可靠的是吧,那它为了实现它的消息传输的可靠性。你刚刚也说到了有一些重传,对,嗯,除了这个还有一些其他的机制来保证传输的可靠性吗?
好的,回答得挺全面啊,操作系统里面有进程还有线程两个概念,你说一下它们的区别和联系?
我现在有个程序跑得非常慢,我发现它是串行执行的,我想改成并行地去执行。嗯,我可以选择用多进程或者多线程,你可以解释一下,说一下这两种方案的优缺点?
我看你也对 AI 应用有一些了解,对吧?可以说一下这个 a2a 的这个是一个什么东西吗?
好的,然后看你参加了一些有一些开源的经历?你这块是怎么进入到这个开源社区的呢?可以分享一下吗呃
OK,你可以,嗯,对着你的这个 PR 来讲一下,就是你解决的一些issue,对,然后以及怎么解决的?对现在处于共享。
可以讲一个已经。merge 进去的
他那个原因,其实我不是很清楚他为什么会覆盖?
那我再分享另一个?ok
那我们开始下。下面的环节我看你一段实习经历,对吧?对,讲一下这个工作内容?
OK,好的,我看你有一个排查服务接口耗时的这个经历,对吧?你可以讲一下。
然后,嗯,你这一块的话。对,大概的一个产出的一个代码量大概是在多少?

反问聊天环节:
比如说如果说我能加入,然后能收获到一些,就是什么样的一些技术栈
就是我,我这场就是表现咋样?我觉得你还挺错的。对,比如这个代码速度,还有这个回答问题的这个逻辑看起来还都可以。
然后你这边如果我们给你发了offer,你大概什么时候可以入职呢?

小红书 后端三面
我看你之前其实已经面过了,之前面试官大概跟我说一下你的情况,你现在是等一下,我看你之前其实有过一些经验的,对吧
你是大概是明年毕业对吧?明年毕业。那你不是下半年要秋准备秋招了呀。我们这边反正要求的话可能是希望能实习 6 个月及以上的时间
时间短的话他可能最后他也第一他学不到东西,第二可能对我们来讲他也很难说把一个系统就是构建起来。
OK,你平时写代码 AI 用的多吗?
这样吧,因为你基础的部分,其实大概他们都给你那个面试过了,我可能就面试一些你的一些,第一是可能算法相关的啊。第二个可能就是一些创新类的,就是我看你其实有一个,那个就是有一个上面写的就是对 MCP 或者 A2A 这样的原理,讲一下?
或者关于 AI 你可以帮我讲一讲,比如我讲举个例子,我现在想做一个系统,我这个系统希望能够做到的类似于我的所有的运维,通过自然语言来就是来执行啊。比如说我想做一个什么机器重启,做一个什么数据库的切换,比如我想把一个集群的一个所有机器同一个低配的规格升到一个高配的规格,我可能就告诉他这些我的需求,然后他也能帮我去设计,做一个这个机器的这个初始化呀怎么去设计呢。 正好学过
我再问个问题,就是关于 Nacos 这一块,对,你对 Narcos 熟悉吗? 
那告诉底层它是一个什么样的存储?底层用的什么样的参数来传入数据的?
呃?这块不太了解,就是底层的话。嗯没太了解,就是更多的是用一些它的 API 这种。
问一下 MySQL 相关的好, MySQL 我看你其实里面写的也熟悉 MVCC 锁和日志,对吧?对,你能告诉我一下他这个有哪一种锁,他进他大概的这个实现的一个思路吗呃?拿这种锁的。
那我出道题给你做应该算法应该是比较那个的,比较熟练的对吧? 还行但是出了三个笔试类型的题目。。。(一道转换题,一道复杂闰年题,一道括号正则题)输入输出都不会我,只搞了第一个,整体思路对了,细节不太对。
MVCC它的一些具体的实现你大概清楚吗?
如果说现在数据库它现在出现一些问题,你的排查思路是什么?比如说现在的抖动了,现在可能它堵塞了?
业务频率层面,数据库连接池层面,bufferpool 层面,索引层面。都讲了讲。
你有一些开源的项目?你能再展示一下吗?哪些是你写的?大概给我讲一讲它的实现?
有那种就是整个参与过一个整个产品的开发,比如说一些大的项目的一个从 0 到 1 的设计,或者在之前的实习过程中有参与过这样的项目吗?
行,我反正大概今天就这些,看你还有什么想咨询的?
反问:
用另一个offer催了下流程
选了下上海的base

第二天oc加offer #秋招笔面试记录#
全部评论
是你吗宝贝
2 回复 分享
发布于 08-08 13:52 广东
佬,请问简历里是写了ai的东西吗,问的频率好高
点赞 回复 分享
发布于 08-16 03:24 江苏
佬强啊,加入一个开源社区看来很加经验值,还有其他的比如hash的一些原理知识点也是了解清楚
点赞 回复 分享
发布于 08-09 23:24 广东
mark
点赞 回复 分享
发布于 08-09 21:30 山东
这么快的吗?
点赞 回复 分享
发布于 08-09 14:39 四川
是秋招还是实习呀
点赞 回复 分享
发布于 08-09 13:22 北京
小红书这边23年7月毕业的还招吗
点赞 回复 分享
发布于 08-09 10:01 江苏省
是不是引擎部门
点赞 回复 分享
发布于 08-09 02:37 香港
无敌
点赞 回复 分享
发布于 08-09 00:04 山东
优秀的面经!
点赞 回复 分享
发布于 08-08 20:31 广东
@开心的菜鸡在评审 学学习一下 这才做面经
点赞 回复 分享
发布于 08-08 13:45 广东
大佬,同26届,现在也是0实习,请问现在投大厂的实习和秋招可以同时进行的吗
点赞 回复 分享
发布于 08-07 22:19 辽宁
三面面试官像是走过程,我写题他在聊天和工作呃呃
点赞 回复 分享
发布于 08-07 11:01 浙江

相关推荐

中途加入只写了1,3,第二题没看懂要干啥第一题:优先队列 + 贪心可以想到贪心,先把所有的数给拆出来,比如[11, 299],拆成[9,9,2,1,1],然后贪心,把大的数放在位数高的那个元素就行了,比如例子中可以变成[(1,2), (2,3)]表示第一个数有两位,第二个数有三位,然后放入优先队列,首先取出第二个元素,将第三位变成9,现在第二个元素只剩两位了,继续放入优先队列,按照该顺序写就OK。代码如下:#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 10;int a[N] ,h[10];pair<int, int> b[N];int main() {int n;cin >> n;priority_queue<pair<int, int>> pq;for (int i = 0; i < n; i ++) {cin >> a[i];b[i].second = i;while (a[i]) {h[a[i] % 10] ++;a[i] /= 10;b[i].first ++;}pq.push(b[i]);}while(pq.size() > 0) {pair<int, int> t = pq.top();pq.pop();int num = 0;for (int i = 9; i >= 0; i --) {if (h[i] != 0) {h[i] --;num = i;break;}}a[t.second] = a[t.second] * 10 + num;t.first--;if (t.first !=0) {pq.push(t);}}long long res = 0;for (int i = 0; i < n; i ++) res += a[i];cout << res;}第三题:组合数首先要推公式,如果两个数a[i]和a[j]之间有n个0,设z = a[j] - a[i], 有多少种可能的序列,设为f(z, n),C是组合数。当n = 1 时,记为f(z, 1),很简单,该0可能是a[i] - a[j]之间的任何数,有z + 1 种可能,f(z, 1) = z + 1 = C(z+1, 1)。当n = 2 时,固定第一个0,如果第一个0为x,那么第二个0就和n = 1 时一样,此时枚举第一个0从[0-z],f(z, 2) = f(z,1) +f(z-1,1) + ...+f(1, 1) + f(0, 1) = 1 +... +z+1 = C(z+2, 2)。同理, n=3时,同理枚举第一个0。f(z, 3) = f(z, 2) +... f(0, 2) = C(z+2, 2) + C (z + 1, 2) + ... C(2, 2) = C(z+3, 3)可以看出来f(z, n) = C(z + n, n) = (z +n)!/(n! & z!);#include <bits/stdc++.h>using namespace std;#define int long longconst int p = 1e9 + 7;const int N = 6e5 + 10;int a[N];int mul[N], dmul[N];int qs(int a, int b) {int res = 1;while (b) {if (b&1) res = res * a % p;a = a * a % p;b >>= 1;}return res;}int C(int n, int m) {int cc = 1;for (int i = n - m + 1; i <= n; i ++) cc = cc * i %p;return cc * dmul[m] % p;}int lucas(int n, int m) {if (m == 0) return 0;int a = n % p, b = m % p;if (b > a) return 0;return C(a, b) * lucas(n/p, m /p) % p;}signed main() {int n; cin >> n;vector<int> v;int res = 1;mul[0] = dmul[0] = 1;for (int i = 1 ; i < N ; i ++) {mul[i] = mul[i - 1] * i % p;dmul[i] = qs(mul[i], p - 2);}for (int i = 1 ;i <= n; i ++) cin >> a[i];for (int i = 1 ; i < n; ) {if (a[i] == 0) {int j = i;while (a[j] == 0) j++;int d = a[j] - a[i - 1];int z = j - i;res = res * C(z + d, z) % p;i = j;} else i++;}cout << res << '\n';}
投递小红书等公司10个岗位
点赞 评论 收藏
分享
1.从 n 个商品中选取两个商品,如果它们的价值之和是 m 的倍数,那么这两个商品就可以免费拿走。问题是求有多少种这样的商品组合。解法思路类似两数之和:使用哈希表记录每个数对 m 取余的结果,满足条件的两个数需要它们的余数之和等于 m(或者两者余数都为 0),即 (a % m + b % m) % m == 0。2.每天都会有一只 ​​小动物来到你的农场 ,总共有 ​​n 只小动物​​会在 ​​n 天内依次到来​​,每个小动物需要每天吃si框食物,再总消耗不超过总食物框数的前提下,求最后能养多少动物解法:计算每只动物的总消耗(n -i * (nums[i])),排序后从头开始累加到超过总食物框数即可3.从 N 个任务中,选出一个连续的区间(任务序列),使得这个区间内所有任务的分数之和 至少为 T​​(也就是满足总分数 ≥ T 的最小窗口)。而在这个满足条件的窗口中,找到一个 ​​最优解:即该窗口中 所有任务的难度的最大值 尽可能小​​。解法:滑动窗口+单调队列,双指针维护一个窗口,保证窗口内的分数总和 ≥ T;单调递减队列维护当前窗口中的最大难度值;4.在一条道路旁种了一排树,每棵树都有一个美观值。要求这条道路上任意一段连续的树的美观值之和都不能等于 M。为了达到这个目标,可以在任意位置插入一棵新的树(可自定义其美观值),问最少需要插入多少次新树,才能保证整条道路上不存在任何一段连续子序列的美观值和为 M。第四题我就单纯的计算了前缀和==m的个数,通过了20%。总体来说难度不大(点名mt),一小时a了3.2,最后一题没啥思路也不想写了。直接交卷。
_Microcosm:第一第三题我超时了,用的双指针遍历,不知道怎么优化剪枝,第二题贪心过了
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
17
89
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务