快手面试题 · 编码实现
快手相关面试题,按最终去重题目聚合。
共 3254 道真题 · 当前筛选命中 204 道 · 更新 2026-08-05
筛选题目已选:编码实现
考察点
技术栈
第 61 题请手写实现单例模式,并说明其要点。 考察设计模式基础、并发安全与编码能力第 62 题给定一个只包含 0、1、2 的数组,将其排序使得所有 0 在前、1 居中、2 在后。请实现该算法并说明时间复杂度。 考察三向切分或荷兰国旗问题的排序算法实现第 63 题对于 `new vector<int>(4,100)` 这一表达式,它会产生包含哪些元素的向量? 考察对C++ vector构造与动态数组初始化的理解第 64 题请解释JDK动态代理的原理。 考察对JDK动态代理底层机制的理解第 65 题请用C++实现一个线程安全的单例类,该类提供一个耗时的初始化函数 init()(如加载配置或数据),且必须初始化成功才能返回单例实例,否则返回 nullptr。请说明实现细节及线程安全的考虑。 考察C++单例模式、线程安全实现及初始化失败处理的边界设计第 66 题讲讲 unplugin-auto-import 这个插件是干什么用的,为什么在开发中要使用它? 考察对自动导入插件原理与工程收益的理解第 67 题请实现二叉搜索树中第k小元素的查找,并说明如何优化。 考察BST中序遍历、递归/迭代实现及其复杂度优化第 68 题实现 Promise.all 的异常处理机制 考察对 Promise.all 拒绝语义、错误传播和并发执行的理解第 69 题给定一个升序整数数组和一个目标值,请用二分查找找出目标值应被插入的位置。 考察二分查找的基本实现与边界处理能力第 70 题请说明Java线程的生命周期状态,以及各状态之间的转换条件。 考察线程生命周期模型的掌握和状态转换理解第 71 题如何合并 k 个有序链表?请说明算法思路、时间复杂度和实现要点。 考察合并有序链表的多路归并算法与复杂度分析第 72 题用两个队列实现一个栈,说思路? 考察队列与栈的抽象转换、操作复杂度与边界处理第 73 题如何在原表基础上,不连接新表,得到次日留存、7日留存、14日留存、30日留存? 考察基于单表自连接或窗口函数的留存计算能力,及对留存口径的理解第 74 题请实现力扣1202题:交换字符串中的元素。 考察并查集的使用与字符串字符交换的处理能力第 75 题删除链表倒数第n个节点 考察链表遍历、双指针技巧和边界情况处理第 76 题请描述你在 LeetCode 88 题(合并两个有序数组)中,遇到原地修改要求时的思考过程和最终选择,并说明为什么另开数组也是一个合理的解法。 考察问题拆解、算法思路表达、对原地修改与空间复杂度权衡的理解第 77 题请实现一个函数,找出二叉树中两个节点的最近公共祖先(LCA)。 考察二叉树遍历、递归设计与边界条件处理第 78 题请说明如何求解二叉树中第二高的叶节点高度,并分析其时间与空间复杂度。 考察对二叉树遍历、叶节点高度计算及复杂度分析的理解第 79 题TypeScript如何对类型进行声明 考察TypeScript类型声明的基本语法与常见用途第 80 题请手写二分查找算法,并说明中间下标 mid 的取值方式及其可能遇到的问题。 考察二分查找的编码实现能力及对边界和整数溢出问题的理解