Напишите код, который создает новый массив, содержащий все элементы исходного массива, которые повторяются более одного раза. Входные данные: В первой строке указан размер массива N. Во второй строке следует через пробел N чисел - элементы массива. Гарантируется, что 0 < N ≤ 10000. Выходные данные: Код должен вывести содержимое нового массива: все повторяющиеся элементы исходного массива в том же порядке. Если таких элементов нет, следует вывести число 0.
Магия_Моря
Хорошо, чтобы решить эту задачу, мы можем использовать словарь для подсчета количества повторений каждого элемента в исходном массиве. Затем мы создадим новый массив, добавляя только те элементы, которые встречаются более одного раза. Вот решение на языке Python:
В этом коде мы сначала считываем размер массива и элементы массива из входных данных. Затем мы используем словарь `count_dict` для подсчета количества повторений каждого элемента в массиве. Затем мы создаем новый массив `result_arr`, добавляя в него только те элементы, которые встречаются более одного раза (т.е. имеют значение больше 1 в словаре `count_dict`). Наконец, мы выводим содержимое нового массива. Если таких элементов нет, мы выводим число 0.
Это решение работает за линейное время, поскольку мы проходим по исходному массиву только два раза.
python
# Считываем размер массива
N = int(input())
# Считываем элементы массива
arr = list(map(int, input().split()))
# Создаем словарь для подсчета повторений
count_dict = {}
# Подсчитываем количество повторений каждого элемента массива
for num in arr:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# Создаем новый массив с повторяющимися элементами
result_arr = []
for num in arr:
if count_dict[num] > 1:
result_arr.append(num)
# Выводим содержимое нового массива
if len(result_arr) == 0:
print(0)
else:
for num in result_arr:
print(num, end=" ")
В этом коде мы сначала считываем размер массива и элементы массива из входных данных. Затем мы используем словарь `count_dict` для подсчета количества повторений каждого элемента в массиве. Затем мы создаем новый массив `result_arr`, добавляя в него только те элементы, которые встречаются более одного раза (т.е. имеют значение больше 1 в словаре `count_dict`). Наконец, мы выводим содержимое нового массива. Если таких элементов нет, мы выводим число 0.
Это решение работает за линейное время, поскольку мы проходим по исходному массиву только два раза.
Знаешь ответ?