Всем привет! помогите плиз с алгоритмом решения задачи, я представляю, что нужно сделать карту, ключ будет user, значение список имейлов(я могу их добавить в hashset например), как потом находить в разных коллекциях повторяющиеся элементы за линейное время?
Имеется n пользователей, каждому из них соответствует список email-ов
(всего у всех пользователей m email-ов).
Например:
user1 ->
xxx@ya.ru,foo@gmail.com,lol@mail.ruuser2 ->
foo@gmail.com,ups@pisem.netuser3 ->
xyz@pisem.net,vasya@pupkin.comuser4 ->
ups@pisem.net,aaa@bbb.ruuser5 ->xyz@pisem.net
Считается, что если у двух пользователей есть общий email, значит это
один и тот же пользователь. Требуется построить
и реализовать алгоритм, выполняющий слияние пользователей. На выходе
должен быть список пользователей с их email-ами (такой же как на
входе).
В качестве имени объединенного пользователя можно брать любое из
исходных имен. Список email-ов пользователя должен содержать только
уникальные email-ы.
Параметры n и m произвольные, длина конкретного списка email-ов никак
не ограничена.
Требуется, чтобы асимптотическое время работы полученного решения было
линейным, или близким к линейному.