Проверить два массива на одинаковое число и вывести это число столько раз, сколько оно встречается в первом массиве

Даны два массива разной длины, могут быть и одинаковые, условие что у них есть одно одинаковое значение, найти это значение и вывести на консоль его столько раз, сколько раз оно встречается в первом числе.

Нужен алгоритм как это всё выполнить, можно с использованием linq.


Ответы (1 шт):

Автор решения: Nowhere Man

Алгоритм может быть такой:

  1. Построить карту частот для первого массива (ключ -- i-й элемент массива, значение -- количество вхождений в массив); сложность O(N), где N -- количество элементов первого массива.
  2. Проитерировать второй массив, чтобы найти совпадающий элемент в карте частот -- как только найден, вернуть уже известную частоту; сложность O(M), M -- количество элементов второго массива.

Реализация в коде не приводится в педагогических целях.

→ Ссылка