Массив - это набор элементов с одинаковыми типами данных. Это линейная структура данных, которая хранится в непрерывных ячейках памяти. Вы можете выполнять множество основных операций с массивом, таких как вставка, удаление, поиск, обновление, обход и т. Д.

В этой статье вы узнаете, как удалить повторяющиеся элементы из отсортированных и несортированных массивов.

Как удалить повторяющиеся элементы из несортированного массива

Постановка задачи

Вам дан несортированный массив целых чисел. Вам нужно удалить повторяющиеся элементы из массива и распечатать массив с уникальными элементами.

Пример 1: Пусть arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Массив после удаления повторяющихся элементов: 23 35 56 67 54 76

Таким образом, на выходе получается 23 35 56 67 54 76.

Пример 2: Пусть arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Массив после удаления повторяющихся элементов: 5 6 1 7 8 2

Таким образом, на выходе получается 5 6 1 7 8 2.

Подход к удалению повторяющихся элементов из несортированного массива

instagram viewer

Вы можете удалить повторяющиеся элементы из несортированного массива, следуя приведенному ниже подходу:

  1. Инициализируйте хэш-карту, в которой будут храниться все уникальные элементы массива.
  2. Пройдите по массиву.
  3. Проверьте, присутствует ли элемент в массиве.
  4. Если элемент присутствует в массиве, продолжайте обход.
  5. Если элемент отсутствует в массиве, распечатайте элемент и сохраните его в хэш-карте.

Примечание: Временная сложность этого решения O (n).

Программа на C ++ для удаления повторяющихся элементов из несортированного массива

Ниже представлена ​​программа на C ++ для удаления повторяющихся элементов из несортированного массива:

// Программа на C ++ для удаления повторяющихся элементов из несортированного массива
#включают
using namespace std;
// Функция для удаления повторяющихся элементов из несортированного массива
void removeDuplicateElements (int arr [], int size)
{
unordered_map м;
для (int i = 0; я{
// Распечатать элемент, если это не так
// присутствует в хеш-карте
если (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Вставляем элемент в хеш-карту
m [arr [i]] = истина;
}
cout << endl;
}
void printArrayElements (int arr [], int size)
{
для (int i = 0; я{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int size1 = sizeof (arr1) / sizeof (arr1 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr1, size1);
cout << "Массив после удаления дубликатов:" << endl;
removeDuplicateElements (arr1, size1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr2, size2);
cout << "Массив после удаления дубликатов:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr3, size3);
cout << "Массив после удаления дубликатов:" << endl;
removeDuplicateElements (arr3, size3);
возврат 0;
}

Выход:

Начальный массив: 
23 35 23 56 67 35 35 54 76
Массив после удаления дубликатов:
23 35 56 67 54 76
Начальный массив:
5 6 1 1 7 5 8 2 7 8
Массив после удаления дубликатов:
5 6 1 7 8 2
Начальный массив:
32 35 33 32 33 38 32 39
Массив после удаления дубликатов:
32 35 33 38 39

Связанный: Как напечатать "Hello, World!" на самых популярных языках программирования

Программа Python для удаления повторяющихся элементов из несортированного массива

Ниже представлена ​​программа Python для удаления повторяющихся элементов из несортированного массива:

# Программа Python для удаления повторяющихся элементов из несортированного списка
def removeDuplicateElements (обр., размер):
m = {}
для i в диапазоне (размер):
# Распечатать элемент, если это не так
# присутствует в словаре
если arr [i] не в m:
print (arr [i], end = "")
# Вставляем элемент в словарь
m [arr [i]] = 1
Распечатать()
def printListElements (обр., размер):
для i в диапазоне (размер):
print (arr [i], end = "")
Распечатать()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
print ("Первоначальный список:")
printListElements (arr1, size1)
print ("Список после удаления дубликатов:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print ("Первоначальный список:")
printListElements (arr2, size2)
print ("Список после удаления дубликатов:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
print ("Первоначальный список:")
printListElements (arr3, size3)
print ("Список после удаления дубликатов:")
removeDuplicateElements (arr3, size3)

Выход:

Начальный массив: 
23 35 23 56 67 35 35 54 76
Массив после удаления дубликатов:
23 35 56 67 54 76
Начальный массив:
5 6 1 1 7 5 8 2 7 8
Массив после удаления дубликатов:
5 6 1 7 8 2
Начальный массив:
32 35 33 32 33 38 32 39
Массив после удаления дубликатов:
32 35 33 38 39

Программа JavaScript для удаления повторяющихся элементов из несортированного массива

Ниже приведена программа на JavaScript для удаления повторяющихся элементов из несортированного массива:

// Программа на JavaScript для удаления повторяющихся элементов из несортированного массива
// Функция для удаления повторяющихся элементов из несортированного массива
function removeDuplicateElements (arr, size) {
let m = new Map ();
для (пусть i = 0; я // Распечатать элемент, если это не так
// присутствует в хеш-карте
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Вставляем элемент в хеш-карту
m.set (arr [i], истина);
}
document.write ("
");
}
function printArrayElements (arr, size) {
для (пусть i = 0; яdocument.write (arr [i] + "");
}
document.write ("
");
}
пусть arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
пусть size1 = arr1.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr1, size1);
document.write ("Массив после удаления дубликатов:" + "
");
removeDuplicateElements (arr1, size1);
пусть arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
пусть size2 = arr2.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr2, size2);
document.write ("Массив после удаления дубликатов:" + "
");
removeDuplicateElements (arr2, size2);
пусть arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
пусть size3 = arr3.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr3, size3);
document.write ("Массив после удаления дубликатов:" + "
");
removeDuplicateElements (arr3, size3);

Выход:

Начальный массив: 
23 35 23 56 67 35 35 54 76
Массив после удаления дубликатов:
23 35 56 67 54 76
Начальный массив:
5 6 1 1 7 5 8 2 7 8
Массив после удаления дубликатов:
5 6 1 7 8 2
Начальный массив:
32 35 33 32 33 38 32 39
Массив после удаления дубликатов:
32 35 33 38 39

Связанный: Как подсчитать количество вхождений данного символа в строку

Как удалить повторяющиеся элементы из отсортированного массива

Постановка задачи

Вам дан отсортированный массив целых чисел. Вам нужно удалить повторяющиеся элементы из массива и распечатать массив с уникальными элементами.

Пример 1: Пусть arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Массив после удаления повторяющихся элементов: 1 2 4 6 8 9

Таким образом, на выходе получим 1 2 4 6 8 9.

Пример 2: Пусть arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Массив после удаления повторяющихся элементов: 1 2 3 4 5

Таким образом, на выходе получим 1 2 3 4 5.

Подход к удалению повторяющихся элементов из отсортированного массива

Вы можете удалить повторяющиеся элементы из отсортированного массива, следуя приведенному ниже подходу:

  1. Инициализируйте индексные переменные i и j с 0.
  2. Итерировать массив.
  3. Если i-й элемент не равен (i + 1) -ому элементу, сохраните i-е значение в arr [j] и увеличьте значение j.
  4. Увеличивайте значение i на каждой итерации.
  5. Сохраните последнее значение arr в arr [j].
  6. Наконец, верните новый размер массива, то есть j. Уникальные элементы будут храниться в массиве от индекса 0 до j-1.

Примечание: Временная сложность этого решения O (n).

Программа C ++ для удаления повторяющихся элементов из отсортированного массива

Ниже представлена ​​программа на C ++ для удаления повторяющихся элементов из отсортированного массива:

// Программа на C ++ для удаления повторяющихся элементов из отсортированного массива
#включают
using namespace std;
// Функция для удаления повторяющихся элементов из отсортированного массива
int removeDuplicateElements (int arr [], int size)
{
int j = 0;
для (int i = 0; я {
// Если i-й элемент не равен (i + 1) -ому элементу,
// затем сохраняем i-е значение в arr [j]
если (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Сохранение последнего значения arr в arr [j]
arr [j ++] = arr [размер-1];
return j;
}
void printArrayElements (int arr [], int size)
{
для (int i = 0; я{
cout << arr [i] << "";
}
cout << endl;
}
int main ()
{
int arr1 [] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
int size1 = sizeof (arr1) / sizeof (arr1 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr1, size1);
cout << "Массив после удаления дубликатов:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr2, size2);
cout << "Массив после удаления дубликатов:" << endl;
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
int arr3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Исходный массив:" << endl;
printArrayElements (arr3, size3);
cout << "Массив после удаления дубликатов:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
возврат 0;
}

Выход:

Начальный массив: 
1 1 1 2 4 6 8 8 9 9
Массив после удаления дубликатов:
1 2 4 6 8 9
Начальный массив:
1 1 2 2 3 3 4 4 5 5
Массив после удаления дубликатов:
1 2 3 4 5
Начальный массив:
10 12 12 14 16 16 18 19 19
Массив после удаления дубликатов:
10 12 14 16 18 19

Программа Python для удаления повторяющихся элементов из отсортированного массива

Ниже представлена ​​программа Python для удаления повторяющихся элементов из отсортированного массива:

# Программа Python для удаления повторяющихся элементов из отсортированного массива
def removeDuplicateElements (обр., размер):
j = 0
для i в диапазоне (размер-1):
если arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [размер-1]
j = j + 1
вернуть j
def printListElements (обр., размер):
для i в диапазоне (размер):
print (arr [i], end = "")
Распечатать()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
print ("Начальный массив:")
printListElements (arr1, size1)
print ("Массив после удаления дубликатов:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print ("Начальный массив:")
printListElements (arr2, size2)
print ("Массив после удаления дубликатов:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
print ("Начальный массив:")
printListElements (arr3, size3)
print ("Массив после удаления дубликатов:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Выход:

Начальный массив: 
1 1 1 2 4 6 8 8 9 9
Массив после удаления дубликатов:
1 2 4 6 8 9
Начальный массив:
1 1 2 2 3 3 4 4 5 5
Массив после удаления дубликатов:
1 2 3 4 5
Начальный массив:
10 12 12 14 16 16 18 19 19
Массив после удаления дубликатов:
10 12 14 16 18 19

Связанный: Введение в алгоритм сортировки слиянием

Программа JavaScript для удаления повторяющихся элементов из отсортированного массива

Ниже приведена программа JavaScript для удаления повторяющихся элементов из отсортированного массива:

// Программа на JavaScript для удаления повторяющихся элементов из отсортированного массива
// Функция для удаления повторяющихся элементов из отсортированного массива
функция removeDuplicateElements (размер, размер)
{
пусть j = 0;
для (пусть i = 0; я {
// Если i-й элемент не равен (i + 1) -ому элементу,
// затем сохраняем i-е значение в arr [j]
если (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Сохранение последнего значения arr в arr [j]
arr [j ++] = arr [размер-1];
return j;
}
function printArrayElements (arr, size) {
для (пусть i = 0; яdocument.write (arr [i] + "");
}
document.write ("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr1, size1);
document.write ("Массив после удаления дубликатов:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr2, size2);
document.write ("Массив после удаления дубликатов:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Исходный массив:" + "
");
printArrayElements (arr3, size3);
document.write ("Массив после удаления дубликатов:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Выход:

Связанный: Как найти наиболее часто встречающийся символ в строке

Начальный массив: 
1 1 1 2 4 6 8 8 9 9
Массив после удаления дубликатов:
1 2 4 6 8 9
Начальный массив:
1 1 2 2 3 3 4 4 5 5
Массив после удаления дубликатов:
1 2 3 4 5
Начальный массив:
10 12 12 14 16 16 18 19 19
Массив после удаления дубликатов:
10 12 14 16 18 19

Попрактикуйтесь в задачах со строками и массивами для следующего собеседования

Проблемы со строками и массивами - одни из наиболее часто задаваемых тем на технических собеседованиях.

Если вы хотите быть как можно более подготовленными, вы должны попрактиковаться в решении некоторых часто задаваемых задач, например, как проверить, является ли строка палиндромом, как проверить, является ли строка палиндромом. анаграмма, найти наиболее часто встречающийся символ в строке, как перевернуть массив, алгоритмы сортировки и поиска на основе массивов, как перевернуть строку, и т.п.

Электронное письмо
Как перевернуть строку в C ++, Python и JavaScript

Узнайте, как перевернуть строку назад на начало на трех разных языках.

Читать далее

Похожие темы
  • Программирование
  • JavaScript
  • Python
  • Учебники по кодированию
Об авторе
Юврадж Чандра (Опубликовано 40 статей)

Юврадж - студент бакалавриата по информатике в Университете Дели, Индия. Он увлечен веб-разработкой Full Stack. Когда он не пишет, он исследует глубину различных технологий.

Ещё от Yuvraj Chandra

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться