ohmyblog

#算法

笔试真题复盘:最多翻转 m 个字符,怎么求最长连续相同子串

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:给定一个只含字符 a 和 b 的字符串,允许任选至多 m 个字符翻转(a 变 b、b 变 a),求操作后能得到的最长连续相同字符子串的长度。

笔试真题复盘:这段二分查找代码错在哪,你能找出几处

先说明属性:这是一篇笔试真题复盘,题目出自本地历史面试资料(一道「指出程序中所有问题」的代码找错题),与任何公司的当前招聘无关。题面给出一段 C++ 代码:在升序数组里查找最后一个等于目标值的元素,存在返回下标,不存在返回 -1。

经典题解析:5 个人分 100 枚金币,第一个提案的人怎么分才能拿到最多

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「5 个人分 100 枚金币」是博弈论逆向归纳的招牌题,很多人背过答案却讲不清过程,面试官要的恰恰是那条倒推链。

笔试真题复盘:最短路还能用 k 次半价券,分层图怎么建

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:一个王国有 n 座城市,编号 0 到 n-1,任意两城之间都有一条魔法通道,通过要花给定的时间。你站在 0 号城,想去 1 号城;

笔试真题复盘:两条铁轨当栈用,车厢顺序能不能调出来

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:一列火车有 n 节车厢,编号 1 到 n,按编号顺序依次进站;出站方向要求把车厢排成给定的目标顺序。

笔试真题复盘:两个电容来回倒,最少几步量出目标电量

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:两个电容(容量为正整数 a、b,初始电量都是 0),允许三种操作——把某个电容放电清零、把某个电容充满到容量上限、把 A 的电量尽可能转移到 B(B 满了剩余留在 A)。

笔试真题复盘:无序数组里找三个数,乘积最大,要求 O(n)

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很短:给定一个无序数组,里面混着正数、负数和零,找出三个数使乘积最大,要求时间复杂度 O(n)、空间复杂度 O(1)。考点不在「找三个大数」,而在那个容易被忽略的负数。

笔试真题复盘:已知前序和中序遍历,怎么把二叉树还原出来

先说明属性:这是一篇历史笔试题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面很经典:给定一棵二叉树的前序遍历和中序遍历序列,把树还原出来。考点不在「会不会」,而在「分治点找得准不准」。

历史题目复盘:游客和房间的最佳匹配,二分图怎么建

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面大意:若干游客和若干房间,每个游客只对部分房间满意,问怎么分配才能让住下的游客最多(或总满意度最高)。

历史题目复盘:筛出 2 到 2000 的所有素数,怎么做到尽量快

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面朴素:输出 2 到 2000 之间的所有素数,怎么写得尽量快?