2.27 刚做完一场 IBM OA ,整体节奏非常紧凑。这次是在 HackerRank 平台上完成的,界面比较常规,支持自测和提交后跑隐藏用例,系统稳定性没什么问题。题量是两道 coding,时间给得不算特别长,但也不至于压迫,只要思路清晰、实现熟练,10~20 分钟内是可以顺下来的。

Q1 会议室最少数量
给你 n 个会议,每个会议有开始时间和结束时间。要求安排会议室,使得同一个会议室里的会议不能时间重叠。注意,如果一个会议在 t 时刻结束,另一个在 t 时刻开始,这两个不算重叠,可以用同一个会议室。最后返回最少需要多少个会议室。
思路:做法是把所有开始时间和结束时间分别排序,然后用两个指针从前往后扫。如果当前开始时间早于最早的结束时间,说明会议重叠,需要多开一个房间;否则说明有会议结束,可以复用房间。过程中记录同时进行的最大会议数,就是最少会议室数量。
Q2 消息线程归类
Q2题意:给定 n 条消息,每条包含时间戳、回复对象索引和文本内容。如果一条消息回复的是 -1,它就是该对话的发起者(父消息);否则它就是对某条消息的回复(子消息)。我们需要返回一个二维数组,其中每个子数组代表一个完整的对话线程。
思路:首先,根据 replyTo 建立映射,把回复对象为 -1 的消息当作“根节点”,并用哈希表把属于同一个根节点的子消息全拎出来归位。接着处理先后顺序:外层按根消息的时间戳给不同线程排队,决定谁先出现在大列表中;内层保持根消息置顶,剩下的子消息按时间戳从旧到新排好。最后,按这个排好的骨架把文本内容填进二维数组返回即可。
IBM / 大厂 OA 实时助攻支持
如果你最近在准备 IBM 或其他大厂 OA,但总是卡在时间节奏、边界条件或者隐藏用例上,其实问题往往不在“不会”,而在“实战稳定度不够”。我们长期整理北美主流公司 OA 高频题型,包括 HackerRank / CodeSignal / 牛客 等平台真题模型,正式考试时也支持实时 OA助攻 ,帮你避免低级失误,把会做的题稳定拿下。