IBM OA 真題曝光|HackerRank兩題全解析,10分鐘一場到底難不難

2.27 剛做完一場 IBM OA ,整體節奏非常緊湊。這次是在 HackerRank 平臺上完成的,介面比較常規,支援自測和提交後跑隱藏用例,系統穩定性沒什麼問題。題量是兩道 coding,時間給得不算特別長,但也不至於壓迫,只要思路清晰、實現熟練,10~20 分鐘內是可以順下來的。

IBM OA 真題曝光|HackerRank兩題全解析,10分鐘一場到底難不難

Q1 會議室最少數量

給你 n 個會議,每個會議有開始時間和結束時間。要求安排會議室,使得同一個會議室裡的會議不能時間重疊。注意,如果一個會議在 t 時刻結束,另一個在 t 時刻開始,這兩個不算重疊,可以用同一個會議室。最後返回最少需要多少個會議室。

思路:做法是把所有開始時間和結束時間分別排序,然後用兩個指標從前往後掃。如果當前開始時間早於最早的結束時間,說明會議重疊,需要多開一個房間;否則說明有會議結束,可以複用房間。過程中記錄同時進行的最大會議數,就是最少會議室數量。

Q2 訊息執行緒歸類

Q2題意:​給定 n 條訊息,每條包含時間戳、回覆物件索引和文字內容。如果一條訊息回覆的是 -1,它就是該對話的發起者(父訊息);否則它就是對某條訊息的回覆(子訊息)。我們需要返回一個二維陣列,其中每個子陣列代表一個完整的對話執行緒。

思路:首先,根據 replyTo 建立對映,把回覆物件為 -1 的訊息當作“根節點”,並用雜湊表把屬於同一個根節點的子訊息全拎出來歸位。接著處理先後順序:外層按根訊息的時間戳給不同執行緒排隊,決定誰先出現在大列表中;內層保持根訊息置頂,剩下的子訊息按時間戳從舊到新排好。最後,按這個排好的骨架把文字內容填進二維陣列返回即可。

IBM / 大廠 OA 實時助攻支援

如果你最近在準備 IBM 或其他大廠 OA,但總是卡在時間節奏、邊界條件或者隱藏用例上,其實問題往往不在“不會”,而在“實戰穩定度不夠”。我們長期整理北美主流公司 OA 高頻題型,包括 HackerRank / CodeSignal / 牛客 等平臺真題模型,正式考試時也支援實時 OA助攻 ,幫你避免低階失誤,把會做的題穩定拿下。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0