Масивът е колекция от елементи със същите типове данни. Това е линейна структура от данни и се съхранява в съседни места на паметта. Можете да извършвате много основни операции върху масив като вмъкване, изтриване, търсене, актуализиране, обръщане и т.н.
В тази статия ще научите как да премахнете дублиращи се елементи от сортирани и несортирани масиви.
Как да премахнете дублиращи се елементи от несортиран масив
Декларация за проблема
Получавате несортиран масив от цели числа. Трябва да премахнете дублиращите се елементи от масива и да отпечатате масива с уникални елементи.
Пример 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.
Подход за премахване на дублиращи се елементи от несортиран масив
Можете да премахнете дублиращи се елементи от несортиран масив, като следвате подхода по-долу:
- Инициализирайте хеш карта, която ще съхранява всички уникални елементи на масива.
- Прекоси масива.
- Проверете дали елементът присъства в масива.
- Ако елементът присъства в масива, продължете да обхождате.
- Ако елементът не присъства в масива, отпечатайте елемента и го съхранявайте в хеш картата.
Забележка: Времевата сложност на това решение е O (n).
Програма C ++ за премахване на дублиращи се елементи от несортиран масив
По-долу е програмата C ++ за премахване на дублиращи се елементи от несортиран масив:
// C ++ програма за премахване на дублиращи се елементи от несортиран масив
#include
използване на пространство от имена std;
// Функция за премахване на дублиращи се елементи от несортиран масив
void removeDuplicateElements (int arr [], int размер)
{
unordered_map m;
за (int i = 0; i{
// Отпечатваме елемента, ако не е
// присъства в хеш картата
ако (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Вмъкване на елемента в хеш картата
m [arr [i]] = вярно;
}
cout << endl;
}
void printArrayElements (int arr [], int размер)
{
за (int i = 0; i{
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
Свързани: Как да отпечатам "Здравей, свят!" на най-популярните езици за програмиране
Програма Python за премахване на дублиращи се елементи от несортиран масив
По-долу е програмата Python за премахване на дублиращи се елементи от несортиран масив:
# Програма Python за премахване на дублиращи се елементи от несортиран списък
def removeDuplicateElements (arr, размер):
m = {}
за i в обхват (размер):
# Отпечатайте елемента, ако не е
# присъства в речника
ако arr [i] не е в m:
отпечатване (arr [i], end = "")
# Поставете елемента в речника
m [arr [i]] = 1
печат ()
def printListElements (arr, размер):
за i в обхват (размер):
отпечатване (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 програма за премахване на дублиращи се елементи от несортиран масив
// Функция за премахване на дублиращи се елементи от несортиран масив
функция removeDuplicateElements (arr, размер) {
нека m = нова карта ();
за (нека i = 0; i // Отпечатваме елемента, ако не е
// присъства в хеш картата
if (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Вмъкване на елемента в хеш картата
m.set (arr [i], true);
}
document.write ("
");
}
функция printArrayElements (arr, размер) {
за (нека i = 0; idocument.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.
Подход за премахване на дублиращи се елементи от сортиран масив
Можете да премахнете дублиращи се елементи от сортиран масив, като следвате подхода по-долу:
- Инициализирайте индексните променливи i и j с 0.
- Итерация на масива.
- Ако i-ият елемент не е равен на (i + 1)-ия елемент, тогава съхранявайте i-тата стойност в arr [j] и увеличавайте стойността на j.
- Увеличете стойността на i във всяка итерация.
- Съхранявайте последната стойност на arr в arr [j].
- Накрая върнете новия размер на масива, т.е. j. Уникалните елементи ще се съхраняват в масива от индекс 0 до j-1.
Забележка: Времевата сложност на това решение е O (n).
Програма C ++ за премахване на дублиращи се елементи от сортиран масив
По-долу е програмата C ++ за премахване на дублиращи се елементи от сортиран масив:
// C ++ програма за премахване на дублиращи се елементи от сортиран масив
#include
използване на пространство от имена std;
// Функция за премахване на дублиращи се елементи от сортиран масив
int removeDuplicateElements (int arr [], int размер)
{
int j = 0;
за (int i = 0; i {
// Ако i-ият елемент не е равен на (i + 1)-и елемент,
// след това съхраняваме i-тата стойност в arr [j]
ако (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Съхраняване на последната стойност на arr в arr [j]
arr [j ++] = arr [размер-1];
връщане j;
}
void printArrayElements (int arr [], int размер)
{
за (int i = 0; i{
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 (arr, размер):
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 (arr, размер):
за i в обхват (размер):
отпечатване (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 (arr, размер)
{
нека j = 0;
за (нека i = 0; i {
// Ако i-ият елемент не е равен на (i + 1)-и елемент,
// след това съхраняваме i-тата стойност в arr [j]
ако (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// Съхраняване на последната стойност на arr в arr [j]
arr [j ++] = arr [размер-1];
връщане j;
}
функция printArrayElements (arr, размер) {
за (нека i = 0; idocument.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
Практикувайте проблеми със струни и масиви за следващото си интервю
Проблемите със струните и масивите са сред най-често задаваните теми в техническите интервюта.
Ако искате да сте максимално подготвени, трябва да практикувате някои често задавани проблеми, като например как да проверите дали низът е палиндром, как да проверите дали низът е анаграма, намерете най-често срещания символ в низ, как да обърнете масив, алгоритми за сортиране и търсене въз основа на масиви, как да обърнете низ, и т.н.
Научете как да обръщате низ назад отпред на три различни езика.
Прочетете Напред
- Програмиране
- JavaScript
- Python
- Уроци за кодиране

Yuvraj е студент по компютърни науки в Университета на Делхи, Индия. Той е запален по Full Stack Web Development. Когато не пише, той изследва дълбочината на различните технологии.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате