Существует заданный массив векторов разного размера и общее количество элементов во всех векторах не будет превышать 10 . Каждый вектор содержит не менее 1 и не более 10 уникальных целых чисел, каждое целое число которых находится в диапазоне от 1 до 10 .Найти количество общих элементов в заданных векторах из массива векторов
Будут 10 запросов, в которых каждый запрос запрашивает количество общих целых чисел в некоторых заданных векторах (не более 4).
Например: 4 векторов:
1 2 5
3 5 6
1 3 6
6 7
1 Запрос:
2 3 (vectors indexed 2 and 3)
Ans:
2 (2 common integers {3,6})
Я не могу придумать эффективное решение для этой проблемы , Какой алгоритм/структура данных будет наиболее подходящим для этой проблемы? Любые ссылки были бы очень полезными.
EDIT: Нет целое число не будет происходить в более чем 4 векторов
То, что в худшем случае займет O (n) раз за один запрос, который является довольно дорогостоящим – Rushil
Да, но не является принятым ответом также O (N) только с предварительной обработкой O (N * logN), а не здесь O (N), или я неправильно понял? – Simon
Вы правы (учитывая цифры, предварительная обработка, скорее всего, будет игнорироваться - и я не знаю, какой из наших ответов будет быстрее). – vib