深圳虾皮信息科技有限公司面试题 · 编码实现
深圳虾皮信息科技有限公司相关面试题,按最终去重题目聚合。
共 2768 道真题 · 当前筛选命中 280 道 · 更新 2026-08-05
筛选题目已选:编码实现
考察点
技术栈
第 61 题数据库有100000条数据需要请求回来并处理,最多允许开20个goroutine,每个goroutine最多请求100条数据,要求用Go并发+Channel模型实现这种并发请求的场景。 考察Go并发编程中worker池模式、Channel通信和任务分配的设计能力第 62 题给定一个图,每个节点代表一个任务,节点上有执行时间(秒)。边表示依赖:任务B依赖任务A,表示A完成后才能执行B。设计一个多线程调度器,在满足依赖的前提下并发执行所有就绪任务。多个没有依赖或依赖已满足的任务可以同时执行。任务执行需要真实的时间消耗(使用std::this_thread::sleep_for模拟),请使用多线程并发执行所有任务。如果所有任务都成功执行完成,返回true;否则返回false。 考察多线程并发编程、依赖调度和条件变量等同步机制的应用第 63 题如何判断一棵二叉树是否是二叉搜索树(BST)? 考察BST定义、中序遍历性质及边界值处理第 64 题请解释Go语言中如何实现继承,并说明接口在Go中的使用方式。 考察对Go语言组合与接口机制的理解第 65 题删除链表中所有重复的元素(重复元素一个不留),并返回修改后的链表头节点。 考察链表操作、重复元素识别与边界处理第 66 题如何用Java实现redolog的随机写和追加写 考察对日志文件写入模式的理解及Java IO实现能力第 67 题请用代码实现判断一个字符串是否是另一个字符串的子串,并说明时间复杂度。 考察字符串匹配算法的实现能力与复杂度分析第 68 题如何使用 Redis 实现滑动时间窗口限流? 考察基于 Redis 的滑动时间窗口限流算法设计与实现能力第 69 题请用单调队列实现一个滑动窗口最大值求解,并说明其时间复杂度。 考察单调队列数据结构理解、滑动窗口算法实现和复杂度分析能力第 70 题请详细介绍LRU缓存淘汰算法的实现方式,并说明如何保证时间复杂度和并发安全。 考察LRU缓存的设计原理、数据结构选择与并发安全实现第 71 题HashMap中元素放入时如何确定其在数组中的位置? 考察对哈希函数和索引计算的掌握第 72 题如何判断一棵二叉树是否为二叉查找树?请给出两种方式。 考察二叉查找树定义、中序遍历性质与递归边界处理第 73 题Go的结构体方法和指针方法的区别 考察Go语言方法集、值接收者与指针接收者的语义差异第 74 题如果说一个提供下载图片的网站,同时最多下载10张,如何使用Channel控制(将Channel容量为10,Channel满了即等待) 考察对Go Channel容量控制并发下载数量的理解和实现第 75 题使用SQL统计登录时间超过7天的人数,请写出查询语句。 考察SQL基础、日期函数和去重分组统计的掌握情况第 76 题如何实现 k 个一组反转链表? 考察链表操作、边界处理与递归或迭代实现能力第 77 题请实现二叉树的层序遍历,并分析其时间与空间复杂度。 考察二叉树层序遍历的实现能力与复杂度分析第 78 题请实现k个一组反转链表,要求从零开始定义ListNode节点类和输入输出处理。 考察链表数据结构理解、递归或迭代实现能力及代码组织能力第 79 题请用代码实现一个线程安全的单例模式,并解释你的实现为什么是线程安全的。 考察并发场景下单例的实现与线程安全理解第 80 题请编写二叉树的层序遍历并说明思路,要求按层输出节点值。 考察层序遍历的迭代实现、队列使用与边界处理