Google 2026 New Grad OA 新题速递 | Google OA分享

39Times read
No Comments

这次 Google 2026 New Grad OA 确实换新题了,感觉题库终于开始动了。整体难度不算特别刁钻,但思考方向如果跑偏,其实挺容易浪费时间。流程还是老样子,拍照验证之后直接开做,前后大概十分钟就把主体写完了。提交后系统又补了两个 test case,算是小小压力测试,好在思路本身比较稳,最后顺利 AC。简单说下两道题的核心解法。

Coding 1

给定一个数组 A,表示学生的身高。所有学生需要排成若干队伍,学生会按照数组中出现的顺序依次到达。对于第 i 个学生,如果存在一支队伍,其中所有学生的身高都高于 A[i],那么该学生可以加入其中任意一支队伍;如果不存在这样的队伍,则该学生需要新建一支队伍。你的任务是计算最终最少会创建多少支队伍。

请编写一个函数:给定一个非空整数数组 A(长度为 N),返回最少创建的队伍数量。

Google 2026 New Grad OA

解题思路

这题本质是在维护若干个“队尾严格递减”的队伍。每来一个学生,就去找当前队伍中队尾身高大于他的那一排,并尽量把他放进去,这样可以给后面的学生留下更多空间。如果没有符合条件的队伍,就新开一排。实现时可以用一个数组记录每排的队尾,并保持有序,然后通过二分查找找到第一个大于当前身高的位置进行替换;找不到就追加新队伍。整体是一个典型的贪心 + 二分维护单调结构(LIS 变形),时间复杂度可以做到 O(n log n)

Coding 2

有若干需要执行的进程。每个进程对运行它的服务器会产生一定的负载,该负载由一个整数表示。服务器的总负载等于其上所有进程负载之和。现在你有两台服务器可供使用,需要将所有进程分配到这两台服务器上,使得它们的总负载差的绝对值最小。

请编写一个函数:给定一个包含 N 个整数的数组 A,其中每个元素表示对应进程的负载,函数应返回两台服务器负载差的最小绝对值。

Google 2026 NG OA

解题思路

目标是让两台服务器的负载尽可能接近,因此可以把问题转化为:从数组中选出一部分进程,使它们的总和尽量接近所有负载和的一半。设总和为 S,只要找到一个子集和最接近 S/2,最终差值就是 S - 2 * subsetSum。这是非常典型的0/1 背包 / 子集划分问题:用布尔 DP 判断某个和是否可达,从 target = S/2 往下寻找第一个可行值即可。时间复杂度通常为 O(n * S),在数据范围不极端的 OA 场景下完全可行。

Google 26 NG SDE OA 体验分享

顺便说一下这次 OA 的整体体验。我这场是找了 programhelp 做全程 OA辅助 ,帮我省下了不少来回试错的时间。尤其是这种需要迅速识别题型的 OA,有人在关键点提醒一下方向,和自己硬想的效率完全不在一个量级。最后提交后补测的 test case 也都稳住了,没有出现反复修改的情况,整体做下来心态会轻松很多。如果你最近也在准备 Google 或其他大厂 OA,提前把这些不确定因素降下来,其实通过率会高不少。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
End of text
 0