Ctrl K

Общие значения с повторами

Лёгкая
Даны два списка целых чисел left и right. Верните их общую часть с учётом повторов: каждое значение должно встречаться в ответе столько раз, сколько оно встречается в обоих списках, то есть минимум из двух количеств. Порядок в ответе любой. Подумайте, что изменится, если списки уже отсортированы или если один из них намного короче другого.
Пример 1
left=[5, 1, 5, 5, 2], right=[5, 5, 3, 1] → [5, 5, 1]

Пятёрок в left три, а в right две — значит, общих пятёрок две. Единица есть в обоих по разу. Ответ — [5, 5, 1] в любом порядке.

Пример 2
left=[7, 7], right=[7, 7, 7, 4] → [7, 7]

Общих семёрок столько, сколько их в списке, где их меньше, — две.

Пример 3
left=[0], right=[9] → []
Ограничения
  • 1 ≤ len(left), len(right) ≤ 10⁵
  • 0 ≤ элементы ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗначения в обоих списках ЛёгкаяВдвое больше ЛёгкаяПары с заданной разницей СредняяЗаклинания без соседей СредняяПотерянный билет Лёгкая
загружаем Python…
Вход
left=[5, 1, 5, 5, 2], right=[5, 5, 3, 1]
Ожидается
[5, 5, 1]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 138 тестов на сервере, включая скрытые.