标签题目
手写题相关面试题
new 关键字的运行流程?实现一个自己的 new
这题考察 new 的四步语义、原型链绑定、this 绑定和构造函数返回值规则,手写实现要覆盖返回对象的特殊分支。
手写题:数组去重,用多种方式实现
这题考察数组去重的多种实现、相等判断和复杂度边界。高质量回答要覆盖基本类型、NaN、对象引用和对象数组按业务 key 去重。
给你一个数组,其中元素是节点值以及父节点值,要求去重并还原树
这道题考察扁平数组转树的实现能力。关键不是只会 parentId 挂 children,而是先用 Map 按唯一 id 去重和建索引,再用第二遍挂载,明确重复 id、父节点后出现、多根、孤儿节点和循环引用的处理策略。
手撕发布订阅
这题考察发布订阅的核心数据结构和边界处理。高质量实现要包含 on、off、emit、once,并处理执行中增删监听器的问题。
手撕:数组拉平(flatten)
这题考察递归遍历、depth 语义、顺序保持和边界处理。回答时要先约定函数契约,再写出不会丢类型的实现,并说明深层数组时的栈风险。
如何用链表实现两个大数字相加?
链表大数相加要逐位处理两个链表和进位,核心是对齐位序、维护 carry,并在末尾补上最后的进位节点。
如何实现 str2num,将字符串转换为整数或浮点数?
str2num 的重点是把符号、前导零、整数部分、小数部分、非法字符和溢出规则定义清楚,再用状态机或分段扫描实现。
如何在给定字符串中输出出现频率最高的字母?
字符串最高频字母题的核心是一次遍历统计频次,再按题目规则处理并列、大小写、非字母字符和字符集范围。
如何反转单链表?
反转单链表的标准做法是迭代维护 prev、curr、next 三个指针,逐个改变 next 指向,最后返回 prev。
如何手写一个 Skill 系统,支持注册、发现和调用本地能力?
这题考手写 Skill 系统的最小实现,回答重点是注册、发现、参数校验、权限控制、调用分发、错误处理和可观测 trace。
如何用代码实现 Multi-Head Cross-Attention,Q/K/V 的输入维度如何对齐?
这题考手写 Multi-Head Cross-Attention 的维度理解和实现顺序,回答重点是 Q 来自目标序列,K/V 来自条件序列,以及多头拆分、mask 和输出合并。
CLIP 的图文对比学习流程如何用伪代码表示?
这题考 CLIP 图文对比学习的训练流程,回答重点是 batch 内配对、图像/文本归一化向量、相似度矩阵、温度系数和对称交叉熵损失。
同题还出现在 1 个公司岗位
如何手写 Beam Search,并处理候选扩展、剪枝和停止条件?
这题考如何手写 Beam Search,回答重点是维护 beam 候选、逐步扩展、按累计分数 top-k 剪枝、处理 EOS 停止并返回最优序列。
如何用 PyTorch/CUDA 思路实现四线性插值,说明索引、权重计算和边界处理伪代码?
这题考实现思路而不是背库函数:先声明把“四线性插值”按 4D/quadrilinear interpolation 理解,即 4 个连续维度上各取 floor/ceil 共 16 个邻居,再讲索引映射、权重乘积、边界策略、CUDA 并行和反向传播验证。
如何手写实现一维卷积算子?给定输入序列 [1,2,3,4] 和卷积核 [1,2,3] 时,如何约定 kernel 翻转、valid/full 输出、padding 和 stride?
这题考的是能否先把卷积约定说清楚再写代码:深度学习里的 Conv1D 通常实际做 cross-correlation 不翻转 kernel;数学卷积会翻转 kernel;valid/full、padding 和 stride 会直接改变输出长度和数值。
如何手写 Multi-Head Self-Attention,Q/K/V 投影、分头、mask 和输出拼接如何实现?
这题考 Transformer 注意力层的可实现细节。好的回答不能只背公式,而要讲清输入输出形状、Q/K/V 一次投影或三次投影、head 维度拆分、scaled dot-product attention、padding/causal mask 广播、softmax/dropout、head 合并、输出投影以及常见数值和 shape bug。
同题还出现在 1 个公司岗位
手写单层 MLP 做回归或二分类时,如何实现 forward、loss、反向传播和参数更新?
这题考的是能否从零写出一个最小神经网络训练闭环:线性层、激活、任务损失、链式法则、梯度形状和参数更新。回答要同时覆盖回归和二分类,并能解释为什么回归常用 MSE,二分类常用 sigmoid + BCE,以及如何验证梯度和训练是否正确。
如何用 PyTorch 实现 Grouped Query Attention?当 Q heads 多于 KV heads 时,K/V heads 应如何分组、repeat 或 broadcast,并完成 attention score、mask、softmax 和输出投影?
这道题考察候选人是否理解 Grouped Query Attention 的 head 形状和实现细节。回答要讲清 Q heads 与 KV heads 的分组关系,如何 repeat K/V,如何计算 mask、softmax 和输出投影。
Verilog 如何写一个带复位的计数器?
这题考时序 always 块、异步复位、同步清零、模计数边界和非阻塞赋值,重点是写出可综合且边界正确的计数器。
Verilog 写一个 32 分频电路时,翻转条件和计数边界怎么确定?
这题考偶数分频的边界理解,32 分频且希望 50% 占空比时,输出应每 16 个输入周期翻转一次。