小红书一面面经
2025年10月11日 小红书一面
全程45分钟,小红书-商业技术
一、算法题
- 第一道算法题:给定一个数组,求满足 i < j 且 a[i] < a[j] 的 a[j] - a[i] 的最大值。 若不存在,返回 -1。 示例:[1,2,3,4,5] 返回 4;[5,4,3,2,1] 返回 -1。 要求:只写核心逻辑,不处理输入输出。追问:时间复杂度和空间复杂度是多少?能否优化?
- 第二道算法题:反转单向链表的前一半节点,并将反转后的部分重新接回原链表。 示例:1->2->3->4 → 反转前2个 → 2->1->3->4。 要求:写核心逻辑,并分析时间/空间复杂度。
二、八股
- 怎么理解多态?
- 多态有什么好处?
- 接口(interface)和抽象类(abstract class)有什么区别?
- HashMap 是如何解决哈希冲突的?
- HashSet 是如何保证元素去重的?
- 有两个任务,一个 I/O 密集型,一个 CPU 密集型,哪个更适合开更多线程?为什么?
- TCP 是如何保证可靠传输的?
- 如果数据包丢失了,TCP 会怎么处理?
- 用 Redis 主要是做什么?
- MySQL 的索引底层数据结构是什么?
- B+ 树有什么特点?为什么数据库常用 B+ 树而不是 B 树?
- B 树相比 B+ 树,在什么场景下可能更有优势?
- 了解 CAP 理论吗?
- MySQL属于 CP 还是 AP?
- Redis 集群属于 CP 还是 AP?
项目和实习一点都没问,算法题做得磕磕绊绊,还是要加强算法基础。一问GPT第一题是LeetCode 121.买卖股票的最佳时机,太紧张了没认出来,自己的问题。