MetaOAAlgorithm
[Meta] OA 真题解析
•
Meta OA 真题解析
题目 1:Count Changes In Recording
题目描述
给定一个录音数组 recording,计算录音中声音变化的次数。声音变化指当前音节与前一个音节不同时,计为一次变化。第一个音节不计入变化次数。
参数:
recording: 字符串数组,每个元素是一个音节
示例:
输入: ["a", "b", "b", "a", "b", "c"]
输出: 4
解释: a->b(1), b->a(2), a->b(3), b->c(4)
解题思路
- 如果录音为空,返回 0
- 初始化计数器为 0,记录前一个音节(转为小写)
- 遍历从第二个音节开始,与前一个音节比较
- 如果不同,计数加 1,更新前一个音节
- 返回最终计数
题目 2:Play On The池塘
题目描述
给定一个整数数组 numbers,玩家可以在数组上玩一个游戏。每次选择最左边的正数作为操作值,然后从这个位置开始向右扫描,将所有大于等于该值的元素都减去该值。返回执行的操作次数。
参数:
numbers: 整数数组,可包含正数、负数和零
示例:
输入: [3, 1, 2, 1]
输出: 2
解释:
第一轮: 选择3,从位置0开始,3-3=0, 1-3<0不变, 2-3<0不变, 1-3<0不变 -> [0,1,2,1]
第二轮: 选择1,从位置1开始,1-1=0, 2-1=1, 1-1=0 -> [0,0,1,0]
没有正数了,返回2
解题思路
- 循环直到没有正数为止
- 找到第一个正数的位置和值
- 从该位置向右扫描,将所有 >= 该值的元素都减去该值
- 计数加 1
- 返回计数
题目 3:Vote Center
题目描述
模拟一个投票中心系统,有 n 个投票中心,每个中心有最大容量 centerCapacities。每日日志 dailyLog 记录了中心的运营情况。
操作类型:
CLOSURE j: 关闭中心 j,之后不再该中心进行投票VOTING: 投票操作,轮流在各开放中心投票,直到达到容量上限
规则:
- 只有开放的中心可以接收投票
- 投票按顺序轮流:首先从 index=0 的开放中心开始,依次向下轮转
- 当一个中心达到容量上限后,轮转到下一个中心
- 如果所有中心都达到容量,重置所有中心的剩余容量
- 返回获得投票最多的中心的索引(票数相同则选索引更大的)
题目 4:Matching Arrays
题目描述
给定两个数组 firstArray 和 secondArray。对于 firstArray 中的每个元素,生成其所有前缀子串(前缀长度从 1 到完整长度)。然后对于 secondArray 中的每个元素,找其最长前缀,使得该前缀在 firstArray 的所有前缀集合中。
参数:
firstArray: 整数数组secondArray: 整数数组
返回值:
- secondArray 中所有元素满足条件的最大前缀长度的最大值
总结
这4道题涵盖了:
- 字符串处理:变化检测、前缀匹配
- 数组操作:模拟游戏过程、投票轮转
- 数据结构:哈希表存储前缀、列表管理开放中心
- 模拟能力:状态机、轮转调度
Meta OA分为70 Min和90 Min两个版本,70 MIn的是4个Leetcode 类型算法题,这个在Codesignal平台的题目都是共享的,本人有收集好的真题题库,只要是在Codesignal平台的都是共享的,有需要也可以联系~