- обрабатывать произвольное количество входных потоков
- удалять дубликаты во всех потоках
- Использовать не более O(1) дополнительной памяти (помимо самих входных потоков)
- Иметь временную сложность O(N log K), где N — общее количество элементов, а K — количество входных потоков.
Код: Выделить всё
stream1 = (x for x in [1, 2, 2, 3])
stream2 = (x for x in [2, 3, 4, 5])
merged_stream = merge_sorted_streams_with_duplicates([stream1, stream2])
print(list(merged_stream)) # [1, 2, 3, 4, 5]
Подробнее здесь: https://stackoverflow.com/questions/788 ... te-removal