Emit an Out-of-Order Packet Stream in Order
Problem statement
Packets arrive in the order described by parallel arrays sequence and payloads. Packet i has the unique positive sequence number sequence[i] and payload payloads[i].
The receiver initially expects sequence number 1. After each arrival, emit the longest newly available contiguous run beginning at the expected number. Buffer later packets until every predecessor has arrived.
Return one string array per arrival; use an empty array when that arrival releases nothing.
Function
emitPackets(sequence: int[], payloads: String[]) → String[][]Examples
Example 1
sequence = [1,2,4,5,3,6,8,7,9]payloads = ["b","l","o","m","o","b","e","r","g"]return = [["b"],["l"],[],[],["o","o","m"],["b"],[],["r","e"],["g"]]Packets 4 and 5 wait for packet 3; its arrival releases payloads 3, 4, and 5 together. Packet 8 waits for 7, whose arrival releases packet 7's payload r before packet 8's payload e.
Example 2
sequence = [3,1,2]payloads = ["c","a","b"]return = [[],["a"],["b","c"]]Packet 3 is buffered; packet 1 emits alone, then packet 2 releases both 2 and 3.
Constraints
sequence.length == payloads.length.1 <= sequence.length <= 10^5.sequenceis a permutation of1..n.- Payload strings are nonempty.