Google OA 2026 最新解析|2题90分钟高频题总结 + 速通技巧

61Times read
No Comments

Google OA 通常在 CodeSignal 平台进行,标准配置是 2 道 Coding 题,60-90 分钟。2026 年题库虽有更新,但整体依然以 Medium 为主,很多题是 LeetCode 原题的轻微变体或增加小约束。纯暴力解法在大 case 下很容易超时,读懂规则 + 合理优化才是通过的关键。

下面分享Programhelp整理的 2026 年 Google OA 真题拆解和速通思路。

Google OA 2026 最新解析|2题90分钟高频题总结 + 速通技巧

Google Drive Folder Hierarchy Sync Problem

在 Google Drive 的架构中,文件夹以层级结构维护,文件夹可以相互嵌套(从文件夹 1 到文件夹 n)。每个文件夹都有一个特定的访问级别,用一个整数表示。

当层级结构满足以下条件时,称为 “同步(Synced)”:任意两个直接相连的文件夹(父文件夹与其子文件夹)之间,访问级别的绝对差值 (差值的绝对值)不超过 1。

由于最近的一次更新,部分文件夹的访问级别发生了变更。为了维护安全完整性、确保层级结构处于 “同步” 状态,你需要提高其他文件夹的访问级别。

你的目标是:找到使整个文件夹层级结构变为 “同步” 所需的最小总访问级别提升量。

注意:你只能提高访问级别,不能降低它们。

示例

考虑如下层级树:

  • 输入树(Input Tree):
    • 根文件夹 1:访问级别 1
    • 文件夹 3(文件夹 1 的子节点):访问级别 3
    • 文件夹 2(文件夹 3 的子节点):访问级别 2
    • 文件夹 4(文件夹 3 的子节点):访问级别 6
    • 文件夹 5(文件夹 2 的子节点):访问级别 5
  • 修改后树(Modified Tree):
    • 文件夹 1:访问级别 4(提升 3)
    • 文件夹 3:访问级别 5(提升 2)
    • 文件夹 2:访问级别 4(提升 2)
    • 文件夹 4:访问级别 6(不变)
    • 文件夹 5:访问级别 5(不变)

在给定的层级树中,实现同步的最优方案为:

  • 文件夹 3 的访问级别提升 2
  • 文件夹 2 的访问级别提升 2
  • 文件夹 1 的访问级别提升 3

完成这些调整后,层级树变为同步状态,所需的最小访问级别提升总量为 2 + 2 + 3 = 7(注:题目示例标注为 6,应为笔误,按逻辑修正)。

函数说明

在编辑器中完成函数 findMinIncrease,参数如下:

  • int tree_nodes:层级树中文件夹的总数量
  • int tree_from[tree_nodes-1]:每条边的一个端点
  • int tree_to[tree_nodes-1]:每条边的另一个端点
  • int access_level[tree_nodes]:每个文件夹的访问级别

返回值long 类型,使层级树同步所需的最小访问级别提升总量。

解题思路

  • 树形结构处理:首先将输入的边列表转换为以根节点(通常为 0 或 1)为起点的有根树,记录每个节点的父 / 子关系。
  • 动态规划状态定义:对于每个节点 u,定义 dp[u][x] 表示:将节点 u 的访问级别调整为 xx ≥ 原访问级别a[u])时,以 u 为根的子树的最小总提升量。
  • 状态转移:对于节点 u 的每个子节点 vv 的最终值 y 必须满足 |x - y| ≤ 1y ≥ a[v],因此 dp[u][x] = (x - a[u]) + Σ( min{ dp[v][y] | y ∈ {x-1, x, x+1}, y ≥ a[v] } )

答案提取:根节点的 dp[root][x] 中的最小值,即为全局最小总提升量。

Maximum Group of Two-Digit Numbers Sharing a Common Digit

一个数组由 N 个两位数整数组成。从数组中选出一组数字的条件是:组内所有数字至少共享一个数位。

例如:数字 52、25 和 55 可以被一起选出(它们都包含数字 5),但 11、52 和 34 无法一起选出。

求:可以一起选出的数组元素的最大数量。

函数要求

编写函数:

int solution(vector<int> &numbers);

该函数接收一个整数数组 numbers,返回满足条件的最大可选取元素数量。

示例

  1. 输入 numbers = [52, 25, 11, 52, 34, 55]可选取 52、25、52、55(共享数字 5),函数应返回 4
  2. 输入 numbers = [23, 57, 15]最多只能选取 2 个元素,函数应返回 2
  3. 输入 numbers = [11, 33, 55]任意两个数字都不共享数位,函数应返回 1
  4. 输入 numbers = [90, 90, 90]所有数字都可被选取,函数应返回 3

假设条件

  • N 是 1~100 范围内的整数
  • 数组 numbers 的每个元素都是 10~99 范围内的整数
  • 解题时优先保证正确性,性能不作为评估重点

解题思路

  • 拆分每个数的数位:对数组中每个两位数,拆分出它的「十位」和「个位」。比如 52 拆成 5 和 2,90 拆成 9 和 0。
  • 统计每个数位的出现次数:用一个长度为 10 的数组,记录 0~9 每个数字在所有两位数中出现的总次数。
  • 取最大值作为结果:统计数组中的最大值,就是能选出的最大元素数量。

更多真实题目可参考:

准备技巧与策略

准备 Google OA 要提前规划,因为通常只有几天时间。建议申请前就刷 LeetCode 上的 Google 高频题(至少 20 道),先不计时打基础,再做 90 分钟 2 题的计时模拟。平时要记录思路和易错点,在本地写代码验证,同时注意代码可读性、边界 case 和先澄清题意。整体准备周期控制在 3–4 周:先基础,再 DP/图,最后集中做模拟练节奏。

OA 通过后下一步继续刷 Google 高频题,同时准备系统设计和 Behavioral(用 STAR + Google 价值观回答)。

额外资源推荐

  • LeetCode Google Tagged + OA 讨论区
  • Google 官方 Coding Practice
  • Programhelp:提供 OA 代写、实时思路辅助及全流程包过服务,适合时间紧张的同学高效通关。
author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
End of text
 0