标签题目
算法相关面试题第 3 页
决策树如何生成和剪枝?
决策树如何生成和剪枝?这道腾讯牛客题的关键是围绕“决策树生成与剪枝”讲清概念、机制、取舍和边界。决策树生成是递归选择最优特征和切分点,让子节点更纯或误差更小。ID3 常用信息增益,C4.5 用信息增益率,CART 分类用 Gini 指数、回归用平方误差下降。
XGBoost 和 GBDT 有什么区别?
XGBoost 和 GBDT 有什么区别?这道腾讯牛客题的关键是围绕“XGBoost 与 GBDT 差异”讲清概念、机制、取舍和边界。GBDT 是梯度提升树的一般框架,每轮用新树拟合当前损失的负梯度;XGBoost 是工程化增强实现,在目标函数中加入正则项,并用二阶泰勒展开近似损失。
L1 正则化和 L2 正则化有什么区别?
L1 正则化和 L2 正则化有什么区别?这道腾讯牛客题的关键是围绕“L1 与 L2 正则化差异”讲清概念、机制、取舍和边界。L1 正则在损失中加入参数绝对值和,倾向于把部分权重压到 0,产生稀疏特征选择;L2 正则加入参数平方和,倾向于均匀缩小权重,降低模型复杂度和过拟合。
随机森林和 XGBoost 有什么区别?
随机森林和 XGBoost 有什么区别?这道腾讯牛客题的关键是围绕“随机森林与 XGBoost 对比”讲清概念、机制、取舍和边界。随机森林是 bagging 思路,多棵树相互独立训练,通过样本和特征随机化降低方差;XGBoost 是 boosting 思路,树按顺序训练,每一棵修正前一轮模型的误差或负梯度。
常见降维方法有哪些?
常见降维方法有哪些?这道腾讯牛客题的关键是围绕“常见降维方法与选择”讲清概念、机制、取舍和边界。降维方法可以按线性/非线性、监督/无监督、可解释/可视化来组织。常见方法包括 PCA、SVD、LDA、t-SNE、UMAP、AutoEncoder,以及特征选择类方法。
机器学习中常见采样方法有哪些?
机器学习中常见采样方法有哪些?这道腾讯牛客题的关键是围绕“机器学习常见采样方法”讲清概念、机制、取舍和边界。机器学习采样方法要按解决的问题分类:划分数据用随机采样、分层采样和时间切分;处理类别不平衡用过采样、欠采样、SMOTE 和类别权重;训练集成模型常用 bootstrap;推荐和语言模型里常见负采样。
逻辑回归为什么常用交叉熵损失而不是 MSE?
逻辑回归为什么常用交叉熵损失而不是 MSE?这道腾讯牛客题的关键是围绕“逻辑回归损失函数选择”讲清概念、机制、取舍和边界。逻辑回归常用交叉熵而不是 MSE,是因为二分类标签服从 Bernoulli 分布,交叉熵对应负对数似然;配合 sigmoid 后优化目标更自然,梯度形态也更适合概率分类。
K-means 聚类算法的流程是什么?
K-means 聚类算法的流程是什么?这道腾讯牛客题的关键是围绕“K-means 聚类流程”讲清概念、机制、取舍和边界。K-means 的流程是先选择 K 个初始中心,然后反复执行样本分配和中心更新:把每个样本分到最近中心所在簇,再用簇内样本均值更新中心,直到中心变化很小或达到迭代上限。
数组和链表的区别?
数组和链表的区别?这道腾讯牛客题的关键是围绕“数组与链表复杂度对比”讲清概念、机制、取舍和边界。数组和链表的核心差异是存储布局。数组连续存储,支持按下标 O(1) 随机访问;链表节点离散,通过指针连接,查找第 k 个节点通常 O(n),但已知前驱节点时插入删除可以 O(1)。
链表和数组查找、删除的时间复杂度?
链表和数组查找、删除的时间复杂度?这道腾讯牛客题的关键是围绕“数组与链表复杂度对比”讲清概念、机制、取舍和边界。数组和链表的核心差异是存储布局。数组连续存储,支持按下标 O(1) 随机访问;链表节点离散,通过指针连接,查找第 k 个节点通常 O(n),但已知前驱节点时插入删除可以 O(1)。
二分查找时如何避免 int 型 mid 溢出?
二分查找时如何避免 int 型 mid 溢出?这道腾讯牛客题的关键是围绕“二分查找 mid 溢出处理”讲清概念、机制、取舍和边界。二分查找中如果用 (left + right) / 2 计算 mid,当 left 和 right 都很大时可能发生整数溢出。更稳的写法是 left + (right - left) / 2,或在语言允许时使用无符号右移/更大整数类型。
决策树模型如何用在实际场景中?
决策树模型如何用在实际场景中?这道腾讯牛客题的关键是围绕“决策树适用场景”讲清概念、机制、取舍和边界。决策树适合表格数据、非线性阈值规则、特征尺度差异大、需要可解释路径的场景。它能处理数值和类别特征,输出从根到叶的规则链,便于业务解释和排查。
随机森林的基本原理是什么?
随机森林的基本原理是什么?这道腾讯牛客题的关键是围绕“随机森林基本原理”讲清概念、机制、取舍和边界。随机森林通过 bootstrap 有放回采样训练多棵决策树,并在每个节点只随机选择一部分特征参与切分,最后分类投票、回归平均。核心目标是让基学习器差异化,从而降低方差。
决策树,分类特征,使用one-hot encoding和不使用的区别?
决策树,分类特征,使用one-hot encoding和不使用的区别?这道腾讯牛客题的关键是围绕“决策树处理类别特征与 one-hot 编码”讲清概念、机制、取舍和边界。决策树处理分类特征时,是否 one-hot 取决于实现是否原生支持 categorical split。原生类别切分可以按类别集合分裂;如果只能做数值二叉切分,one-hot 会把一个多类别特征拆成多个 0/1 特征,改变树深、稀疏性和类别组合表达。
快排与归并排序的区别?
快排与归并排序的区别?这道腾讯牛客题的关键是围绕“快速排序与归并排序对比”讲清概念、机制、取舍和边界。快速排序和归并排序都能做到平均 O(n log n),但思路和工程取舍不同。快排通过 partition 原地划分再递归子区间,平均快、缓存友好但通常不稳定,最坏可能 O(n^2);归并排序先递归拆分再合并有序段,稳定且最坏 O(n log n),但通常需要 O(n) 额外空间。
如何判断一个链表是否有环?
如何判断一个链表是否有环?这道腾讯牛客题的关键是围绕“链表判环与快慢指针”讲清概念、机制、取舍和边界。判断链表是否有环,常用 Floyd 快慢指针。慢指针每次走一步,快指针每次走两步;如果链表有环,快指针最终会在环内追上慢指针;如果无环,快指针会先走到 null。
如何判断单链表是否成环?
如何判断单链表是否成环?这道腾讯牛客题的关键是围绕“链表判环与快慢指针”讲清概念、机制、取舍和边界。判断链表是否有环,常用 Floyd 快慢指针。慢指针每次走一步,快指针每次走两步;如果链表有环,快指针最终会在环内追上慢指针;如果无环,快指针会先走到 null。
给定一个有序数组,统计指定元素出现的次数?
给定一个有序数组,统计指定元素出现的次数?这道腾讯牛客题的关键是围绕“有序数组统计元素次数”讲清概念、机制、取舍和边界。有序数组统计 target 出现次数,最稳的方法是两次二分:lower_bound 找第一个大于等于 target 的位置,upper_bound 找第一个大于 target 的位置,次数等于 upper-lower。
树有哪几种遍历方式?
树有哪几种遍历方式?这道腾讯牛客题的关键是围绕“树的遍历方式”讲清概念、机制、取舍和边界。常见树遍历包括前序、中序、后序和层序。二叉树中前序是根-左-右,中序是左-根-右,后序是左-右-根,层序按层访问。N 叉树通常保留前序、后序和层序,中序没有统一定义。
逻辑回归的原理和推导过程是什么?
逻辑回归的原理和推导过程是什么?这道腾讯牛客题的关键是围绕“逻辑回归推导”讲清概念、机制、取舍和边界。逻辑回归用线性函数 z=w^Tx+b 得到 logit,再经 sigmoid 得到正类概率 p。把 y 看作 Bernoulli 分布,最大化似然,取负对数后得到二分类交叉熵损失。
动态规划与贪心有什么区别?
动态规划与贪心有什么区别?这道腾讯牛客题的关键是围绕“动态规划与贪心区别”讲清概念、机制、取舍和边界。动态规划通过状态表保存子问题结果,依靠状态转移枚举可能选择;贪心每一步只做当前最优选择,并且必须能证明局部最优能导向全局最优。
实现消息队列(多生产者,多消费者)?
实现消息队列(多生产者,多消费者)?这道腾讯牛客题的关键是围绕“多生产者多消费者消息队列”讲清概念、机制、取舍和边界。实现多生产者多消费者队列,要先确定有界还是无界、阻塞还是非阻塞、是否需要关闭语义和背压。经典阻塞队列可用 mutex + condition variable 保护环形缓冲区或链表队列。
为什么高并发场景下用unfair锁而不是fair?
为什么高并发场景下用unfair锁而不是fair?这道腾讯牛客题的关键是围绕“高并发下非公平锁取舍”讲清概念、机制、取舍和边界。高并发场景常用非公平锁,是因为它允许刚到达的线程在锁释放瞬间直接竞争成功,减少严格排队带来的线程唤醒、挂起和上下文切换成本。它牺牲一部分公平性,换取更高吞吐和更低平均调度开销。
fair锁如何实现的?
fair锁如何实现的?这道腾讯牛客题的关键是围绕“公平锁实现机制”讲清概念、机制、取舍和边界。公平锁的核心是按等待顺序授予锁,通常通过同步队列维护排队线程。以 ReentrantLock 公平模式为例,线程获取锁前会检查队列中是否已有前驱节点,有前驱就不插队,获取失败后进入 AQS 队列等待唤醒。
怎么算出二叉树的深度?
怎么算出二叉树的深度?这道腾讯牛客题的关键是围绕“二叉树深度计算”讲清概念、机制、取舍和边界。二叉树深度可以递归计算:空树深度为 0,非空节点深度为 1 + max(leftDepth, rightDepth)。也可以用 BFS 层序遍历,每处理完一层深度加一。
什么是动态规划?
什么是动态规划?这道腾讯牛客题的关键是围绕“动态规划定义与解题框架”讲清概念、机制、取舍和边界。动态规划适合具有最优子结构和重叠子问题的问题。回答时要讲清状态定义、转移方程、初始化、遍历顺序和结果位置,而不是先展开 DP 与贪心对比。
链表如何插入节点?
链表如何插入节点?这道腾讯牛客题的关键是围绕“链表节点插入流程”讲清概念、机制、取舍和边界。链表插入节点的核心是先保存后继,再改新节点和前驱的指针。单链表在已知前驱节点 prev 时,可以让 newNode.next = prev.next,再让 prev.next = newNode。
当文件无法一次全部加载内存时,如何对大文件内容排序?
当文件无法一次全部加载内存时,如何对大文件内容排序?这道腾讯牛客题的关键是围绕“大文件外部排序”讲清概念、机制、取舍和边界。大文件无法一次加载内存时,用外部排序:按内存上限分块读取,每块在内存中排序后写成临时有序 run,再用 k 路归并把多个有序 run 合成最终有序文件。
红黑树的核心性质是什么?
红黑树的核心性质是什么?这道腾讯牛客题的关键是围绕“红黑树核心性质”讲清概念、机制、取舍和边界。红黑树是近似平衡二叉搜索树,核心性质包括:节点红或黑,根节点黑,所有 NIL 叶子黑,红节点不能有红孩子,从任一节点到所有后代 NIL 叶子的黑节点数相同。
如何用回溯法生成全排列?
如何用回溯法生成全排列?这道腾讯牛客题的关键是围绕“回溯生成全排列”讲清概念、机制、取舍和边界。用回溯生成全排列,维护当前路径 path 和 used 标记。每一层选择一个未使用元素加入路径,递归到长度为 n 时收集一个排列,然后撤销选择继续尝试。
Transformer 中 Q、K、V 是如何得到的,注意力公式如何理解?
Transformer 中 Q、K、V 是如何得到的,注意力公式如何理解?这道腾讯牛客题的关键是围绕“Transformer Q/K/V 与注意力公式”讲清概念、机制、取舍和边界。Q、K、V 是同一输入表示经过三组可学习线性投影得到的查询、键和值。Q 用来发起查询,K 用来被匹配,V 是最终被加权汇聚的信息。
SVM 核函数应如何选择?
SVM 核函数应如何选择?这道腾讯牛客题的关键是围绕“SVM 核函数选择”讲清概念、机制、取舍和边界。SVM 核函数选择要看数据规模、特征维度、线性可分程度和非线性边界复杂度。线性核适合高维稀疏或近似线性数据,RBF 核适合中小规模非线性边界,多项式核适合明确存在特征交互阶数的场景。
在什么场景下适合使用决策树,为什么?
在什么场景下适合使用决策树,为什么?这道腾讯牛客题的关键是围绕“决策树适用场景”讲清概念、机制、取舍和边界。决策树适合表格数据、非线性阈值规则、特征尺度差异大、需要可解释路径的场景。它能处理数值和类别特征,输出从根到叶的规则链,便于业务解释和排查。
随机森林的基本原理是什么,为什么它通常比单棵决策树更稳健?
随机森林的基本原理是什么,为什么它通常比单棵决策树更稳健?这道腾讯牛客题的关键是围绕“随机森林基本原理”讲清概念、机制、取舍和边界。随机森林通过 bootstrap 有放回采样训练多棵决策树,并在每个节点只随机选择一部分特征参与切分,最后分类投票、回归平均。核心目标是让基学习器差异化,从而降低方差。
Transformer 的核心结构和自注意力原理是什么?
Transformer 的核心结构和自注意力原理是什么?这道腾讯牛客题的关键是围绕“Transformer 结构与自注意力”讲清概念、机制、取舍和边界。Transformer 的核心由多头自注意力、前馈网络、残差连接、LayerNorm 和位置编码组成。自注意力通过 Q、K、V 计算 token 之间的相关性,再用相关性加权聚合值向量。
同题还出现在 1 个公司岗位
常见聚类算法有哪些,各自适用什么场景?
常见聚类算法有哪些,各自适用什么场景?这道腾讯牛客题的关键是围绕“常见聚类算法场景选择”讲清概念、机制、取舍和边界。常见聚类算法包括 K-means、层次聚类、DBSCAN、GMM 和谱聚类。选择时要看簇形状、是否需要指定 K、噪声/离群点、样本规模、距离度量和是否需要软分配。
如何判断单链表是否有环?
如何判断单链表是否有环?这道腾讯牛客题的关键是围绕“链表判环与快慢指针”讲清概念、机制、取舍和边界。判断链表是否有环,常用 Floyd 快慢指针。慢指针每次走一步,快指针每次走两步;如果链表有环,快指针最终会在环内追上慢指针;如果无环,快指针会先走到 null。
二叉树有哪些基本性质和特点?
二叉树有哪些基本性质和特点?这道腾讯牛客题的关键是围绕“二叉树基本性质”讲清概念、机制、取舍和边界。二叉树每个节点最多有两个孩子,可分为普通二叉树、满二叉树、完全二叉树、平衡二叉树和二叉搜索树等。常见性质包括第 i 层最多 2^(i-1) 个节点,深度为 h 的二叉树最多 2^h-1 个节点。
平衡二叉树失衡后如何通过旋转恢复平衡?
平衡二叉树失衡后如何通过旋转恢复平衡?这道腾讯牛客题的关键是围绕“平衡二叉树旋转维护”讲清概念、机制、取舍和边界。平衡二叉树常以 AVL 为例,要求任一节点左右子树高度差不超过 1。插入或删除导致失衡后,根据 LL、RR、LR、RL 四种情况做单旋或双旋恢复平衡。
快速排序的过程、时间复杂度和常见优化方式是什么?
快速排序的过程、时间复杂度和常见优化方式是什么?这道腾讯牛客题的关键是围绕“快速排序流程与优化”讲清概念、机制、取舍和边界。快速排序的过程是选 pivot,执行 partition,把小于 pivot 的元素放左侧、大于 pivot 的元素放右侧,然后递归排序左右子区间。平均时间 O(n log n),最坏 O(n^2),递归栈平均 O(log n)。
什么是平衡二叉树,如何实现基本的平衡维护?
什么是平衡二叉树,如何实现基本的平衡维护?这道腾讯牛客题的关键是围绕“平衡二叉树旋转维护”讲清概念、机制、取舍和边界。平衡二叉树常以 AVL 为例,要求任一节点左右子树高度差不超过 1。插入或删除导致失衡后,根据 LL、RR、LR、RL 四种情况做单旋或双旋恢复平衡。
编译器中的 AST 和词法分析分别是什么?
编译器中的 AST 和词法分析分别是什么?这道腾讯牛客题的关键是围绕“编译器词法分析、语法分析与 AST”讲清概念、机制、取舍和边界。词法分析负责把源代码字符流切分成 token,例如关键字、标识符、数字、运算符和分隔符;AST 是语法分析后得到的抽象语法树,保留程序结构和语义相关节点,通常会省略括号、分号等纯语法细节。
常见排序算法中哪些是稳定排序?
常见排序算法中哪些是稳定排序?这道腾讯牛客题的关键是围绕“排序稳定性”讲清概念、机制、取舍和边界。排序稳定性指相等 key 的元素在排序后仍保持原来的相对顺序。常见稳定排序包括冒泡排序、插入排序、归并排序、计数排序、基数排序和桶排序的稳定实现;常见不稳定排序包括快速排序、堆排序、选择排序和希尔排序。
树和堆这两种数据结构有什么区别?
树和堆这两种数据结构有什么区别?这道腾讯牛客题的关键是围绕“树与堆数据结构区别”讲清概念、机制、取舍和边界。树是一类层级数据结构,每个节点可以有子节点;堆通常是满足堆序性质的完全二叉树,是树的一种特殊形式。最大堆父节点不小于子节点,最小堆父节点不大于子节点。
订单粒度和人车粒度做派单召回有什么区别?
这题考派单系统的召回建模粒度:订单粒度从订单找候选司机,人车粒度从司机或人车状态找候选订单,差异体现在实时性、容量约束和全局匹配效率。
如果资源无限,去掉召回直接全量排序会怎样?
这题不是简单问算力,而是考推荐系统为什么分召回、粗排、精排:全量排序可能提升候选覆盖,但会改变样本分布、模型目标和系统约束。
风险社区检测中,Louvain 和 LPA 应该如何选择?
这道题考察图算法在风控社区检测里的取舍。回答不要只背 Louvain 和 LPA 定义,要结合风险图的边权、噪声、稳定性、可解释性和处置成本说明:高精度离线团伙发现更偏 Louvain,超大规模快速扩散或候选扩展可用 LPA。
出行派单中,给定乘客-司机候选边和权重,如何建模最大权匹配?
这道题考察出行派单如何从“乘客和司机两两配对”抽象成带约束的最大权二分图匹配。高质量回答要先定义候选边和权重,再讲一对一约束、不可匹配处理、算法选择、在线批量求解、业务护栏和效果评估,而不是只背匈牙利算法。