ohmyblog

#算法

经典题解析:带权任务有依赖,怎么让重要的任务尽量先执行

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题目要求对带权的有向无环图(DAG)排序:不违背依赖关系,且权重大的任务尽量靠前。它在 Agent 任务编排、数据管线调度里天天出现——「依赖约束加优先级」几乎是最常见的排序需求。

笔试真题复盘:删掉最少的字符,把串变成最长回文

先说明属性:这是一篇历史笔试题复盘,题目出自本地笔试题集资料,与任何公司的当前招聘无关。这道题的第一层陷阱不在算法,而在题意转换——很多人读完题就开始枚举删除方案,方向从一开始就错了。

经典题解析:数组里三个数各自出现超过 n/4 次,怎么找出来

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料(原题面写作「三个数字出现超过 3/4」,按惯例理解为三个数各自出现次数超过 n/4),与任何公司的当前招聘无关。这道题是摩尔投票法的推广版,单候选版本人人会背,一推广到多候选就卡住一大片人。

经典题解析:二叉树的最大通路长度,递归怎么设计

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料整理,与任何公司的当前招聘无关。「求二叉树的最大通路长度」——也叫二叉树的直径——是树形 DP 的入门招牌题。题目一句话:任意两个节点之间的最长路径有多少条边。

经典题解析:从 300 万条字符串里找最热门的 10 条

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。Top-K 是数据处理面试的常客:300 万条字符串找最热门的 10 条,内存装得下,考点全在「怎么用最小代价维护一个动态门槛」。

笔试真题复盘:7 个 A 7 个 B 任意前缀 A 不少于 B,有多少种合法排列

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面是:一个序列由 7 个 A 和 7 个 B 组成,要求任意前缀中 A 的个数不少于 B 的个数,问这样的序列有多少个。四个选项围着 429 打转,答案是 429——卡特兰数 C(7)。

经典题解析:线段上随机取两个点,三段能拼成三角形的概率是多少

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。一条长为 1 的线段,独立均匀地随机切两刀,得到的三段能拼成三角形的概率是多少?答案是 1/4。但面试官要的不是这个数字,而是你如何把「概率」一步步翻译成「面积」。

笔试真题复盘:斐波那契数列要求比 O(n) 更快,矩阵快速幂怎么推

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很直接:求斐波那契数列第 N 项,要求时间复杂度优于 O(n)。

笔试真题复盘:区间最小值乘区间和,怎么求全局最大值

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题目本身一句话:给定一个元素都在 0 到 100 之间的数组,选一个区间,使「区间最小值 × 区间所有数的和」最大,输出这个最大值。数组长度最大 50 万。

经典题解析:10 个节点的环上走 N 步回到原点,共有多少种走法

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面很短:编号 0 到 9 的十个节点围成一个环,从 0 号出发,每一步必须向左或向右走一格,走 N 步恰好回到 0 号节点,共有多少种走法?