Низ је колекција елемената са истим типовима података. То је линеарна структура података и чува се на непрекидним меморијским локацијама. На низу можете изводити многе основне операције као што су уметање, брисање, претраживање, ажурирање, обртање итд.

У овом чланку ћете научити како уклонити дупликате елемената из сортираних и несортираних низова.

Како уклонити двоструке елементе из несортираног низа

Изјава о проблему

Добили сте несортирани низ целих бројева. Морате уклонити дупликате елемената из низа и исписати низ јединственим елементима.

Пример 1: Нека арр = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Низ након уклањања дуплираних елемената: 23 35 56 67 54 76

Дакле, излаз је 23 35 56 67 54 76.

Пример 2: Нека арр = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Низ након уклањања дуплираних елемената: 5 6 1 7 8 2

Дакле, излаз је 5 6 1 7 8 2.

Приступ уклањању дуплираних елемената из несортираног низа

Дуплиране елементе можете уклонити из несортиране низе пратећи доњи приступ:

  1. Иницијализујте хеш мапу која ће сачувати све јединствене елементе низа.
  2. Пређите низ.
  3. Проверите да ли је елемент присутан у низу.
  4. Ако је елемент присутан у низу, наставите да се крећете.
  5. Ако елемент није присутан у низу, одштампајте елемент и сачувајте га у хеш мапи.

Белешка: Временска сложеност овог решења је О (н).

Програм Ц ++ за уклањање дуплираних елемената из несортираног низа

Испод је програм Ц ++ за уклањање дуплираних елемената из несортиране низове:

// Ц ++ програм за уклањање дупликата елемената из несортираног низа
#инцлуде
коришћење простора имена стд;
// Функција за уклањање дупликата елемената из несортираног низа
воид ремовеДуплицатеЕлементс (инт арр [], инт величина)
{
унордеред_мап м;
за (инт и = 0; и{
// Штампање елемента ако није
// присутан на хеш мапи
иф (м.финд (арр [и]) == м.енд ())
{
цоут << арр [и] << "";
}
// Уметни елемент у хеш мапу
м [арр [и]] = тачно;
}
цоут << ендл;
}
воид принтАрраиЕлементс (инт арр [], инт величина)
{
за (инт и = 0; и{
цоут << арр [и] << "";
}
цоут << ендл;
}
инт маин ()
{
инт арр1 [] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
инт сизе1 = сизеоф (арр1) / сизеоф (арр1 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр1, сизе1);
цоут << "Низ након уклањања дупликата:" << ендл;
ремовеДуплицатеЕлементс (арр1, сизе1);
инт арр2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
инт сизе2 = сизеоф (арр2) / сизеоф (арр2 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр2, сизе2);
цоут << "Низ након уклањања дупликата:" << ендл;
ремовеДуплицатеЕлементс (арр2, сизе2);
инт арр3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
инт сизе3 = сизеоф (арр3) / сизеоф (арр3 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр3, сизе3);
цоут << "Низ након уклањања дупликата:" << ендл;
ремовеДуплицатеЕлементс (арр3, сизе3);
ретурн 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

Повезан: Како се штампа "Здраво, свет!" на најпопуларнијим програмским језицима

Питхон програм за уклањање дупликата елемената из несортираног низа

Испод је програм Питхон за уклањање дупликата елемената из неразврстаног низа:

# Питхон програм за уклањање дуплираних елемената са несортиране листе
деф ремовеДуплицатеЕлементс (арр, величина):
м = {}
за и у опсегу (величина):
# Одштампајте елемент ако није
# присутан у речнику
ако арр [и] није у м:
испис (арр [и], енд = "")
# Уметните елемент у речник
м [арр [и]] = 1
испис ()
деф принтЛистЕлементс (арр, величина):
за и у опсегу (величина):
испис (арр [и], енд = "")
испис ()
арр1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
сизе1 = лен (арр1)
принт ("Почетна листа:")
принтЛистЕлементс (арр1, сизе1)
принт ("Листа након уклањања дупликата:")
ремовеДуплицатеЕлементс (арр1, сизе1)
арр2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
сизе2 = лен (арр2)
принт ("Почетна листа:")
принтЛистЕлементс (арр2, сизе2)
принт ("Листа након уклањања дупликата:")
ремовеДуплицатеЕлементс (арр2, сизе2)
арр3 = [32, 35, 33, 32, 33, 38, 32, 39]
сизе3 = лен (арр3)
принт ("Почетна листа:")
принтЛистЕлементс (арр3, сизе3)
принт ("Листа након уклањања дупликата:")
ремовеДуплицатеЕлементс (арр3, сизе3)

Излаз:

Почетни низ: 
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

ЈаваСцрипт програм за уклањање дуплираних елемената из несортираног низа

Испод је ЈаваСцрипт програм за уклањање дупликата елемената из неразврстаног низа:

// ЈаваСцрипт програм за уклањање дуплираних елемената из неразврстаног низа
// Функција за уклањање дупликата елемената из несортираног низа
функција ремовеДуплицатеЕлементс (арр, сизе) {
нека је м = нова мапа ();
за (нека је и = 0; и // Штампање елемента ако није
// присутан на хеш мапи
иф (м.гет (арр [и]) == нулл) {
доцумент.врите (арр [и] + "");
}
// Уметни елемент у хеш мапу
м.сет (арр [и], тачно);
}
доцумент.врите ("
");
}
функција принтАрраиЕлементс (арр, сизе) {
за (нека је и = 0; идоцумент.врите (арр [и] + "");
}
доцумент.врите ("
");
}
нека арр1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
нека сизе1 = арр1.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр1, сизе1);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
ремовеДуплицатеЕлементс (арр1, сизе1);
нека је арр2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
нека сизе2 = арр2.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр2, сизе2);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
ремовеДуплицатеЕлементс (арр2, сизе2);
нека арр3 = [32, 35, 33, 32, 33, 38, 32, 39];
нека сизе3 = арр3.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр3, сизе3);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
ремовеДуплицатеЕлементс (арр3, сизе3);

Излаз:

Почетни низ: 
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: Нека је арр = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Низ након уклањања дуплираних елемената: 1 2 4 6 8 9

Дакле, излаз је 1 2 4 6 8 9.

Пример 2: Нека је арр = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Низ након уклањања дуплираних елемената: 1 2 3 4 5

Дакле, излаз је 1 2 3 4 5.

Приступ уклањању дуплираних елемената из разврстаног низа

Из сортиране низове можете уклонити дупликате елемената следећи приступ у наставку:

  1. Иницијализујте индексне променљиве и и ј са 0.
  2. Поновите низ.
  3. Ако и-ти елемент није једнак (и + 1) -том елементу, тада и-ту вредност сачувајте у арр [ј] и повећајте вредност ј.
  4. Повећајте вредност и у свакој итерацији.
  5. Спремите последњу вредност арр у арр [ј].
  6. На крају вратите нову величину низа, тј. Ј. Јединствени елементи ће се чувати у низу од индекса 0 до ј-1.

Белешка: Временска сложеност овог решења је О (н).

Програм за уклањање дуплираних елемената из разврстаног низа

Испод је програм Ц ++ за уклањање дуплираних елемената из разврстаног низа:

// Ц ++ програм за уклањање дупликата елемената из разврстаног низа
#инцлуде
коришћење простора имена стд;
// Функција за уклањање дуплираних елемената из разврстаног низа
инт ремовеДуплицатеЕлементс (инт арр [], инт величина)
{
инт ј = 0;
за (инт и = 0; и {
// Ако и-ти елемент није једнак (и + 1) -том елементу,
// затим чувамо и-ту вредност у арр [ј]
иф (арр [и]! = арр [и + 1])
{
арр [ј] = арр [и];
ј ++;
}
}
// Похрањивање последње вредности арр у арр [ј]
арр [ј ++] = арр [величина-1];
ретурн ј;
}
воид принтАрраиЕлементс (инт арр [], инт величина)
{
за (инт и = 0; и{
цоут << арр [и] << "";
}
цоут << ендл;
}
инт маин ()
{
инт арр1 [] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
инт сизе1 = сизеоф (арр1) / сизеоф (арр1 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр1, сизе1);
цоут << "Низ након уклањања дупликата:" << ендл;
сизе1 = ремовеДуплицатеЕлементс (арр1, сизе1);
принтАрраиЕлементс (арр1, сизе1);
инт арр2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
инт сизе2 = сизеоф (арр2) / сизеоф (арр2 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр2, сизе2);
цоут << "Низ након уклањања дупликата:" << ендл;
сизе2 = ремовеДуплицатеЕлементс (арр2, сизе2);
принтАрраиЕлементс (арр2, сизе2);
инт арр3 [] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
инт сизе3 = сизеоф (арр3) / сизеоф (арр3 [0]);
цоут << "Почетни низ:" << ендл;
принтАрраиЕлементс (арр3, сизе3);
цоут << "Низ након уклањања дупликата:" << ендл;
сизе3 = ремовеДуплицатеЕлементс (арр3, сизе3);
принтАрраиЕлементс (арр3, сизе3);
ретурн 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

Питхон програм за уклањање дуплираних елемената из разврстаног низа

Испод је програм Питхон за уклањање дуплираних елемената из разврстаног низа:

# Питхон програм за уклањање дуплираних елемената из разврстаног низа
деф ремовеДуплицатеЕлементс (арр, величина):
ј = 0
за и у опсегу (величина-1):
ако је арр [и]! = арр [и + 1]:
арр [ј] = арр [и]
ј = ј + 1
арр [ј] = арр [сизе-1]
ј = ј + 1
повратак ј
деф принтЛистЕлементс (арр, величина):
за и у опсегу (величина):
испис (арр [и], енд = "")
испис ()
арр1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
сизе1 = лен (арр1)
принт ("Почетни низ:")
принтЛистЕлементс (арр1, сизе1)
принт ("Низ након уклањања дупликата:")
сизе1 = ремовеДуплицатеЕлементс (арр1, сизе1)
принтЛистЕлементс (арр1, сизе1)
арр2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
сизе2 = лен (арр2)
принт ("Почетни низ:")
принтЛистЕлементс (арр2, сизе2)
принт ("Низ након уклањања дупликата:")
сизе2 = ремовеДуплицатеЕлементс (арр2, сизе2)
принтЛистЕлементс (арр2, сизе2)
арр3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
сизе3 = лен (арр3)
принт ("Почетни низ:")
принтЛистЕлементс (арр3, сизе3)
принт ("Низ након уклањања дупликата:")
сизе3 = ремовеДуплицатеЕлементс (арр3, сизе3)
принтЛистЕлементс (арр3, сизе3)

Излаз:

Почетни низ: 
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

Повезан: Увод у алгоритам сортирања стапања

ЈаваСцрипт програм за уклањање дупликата из сортираног низа

Испод је ЈаваСцрипт програм за уклањање дуплираних елемената из разврстаног низа:

// ЈаваСцрипт програм за уклањање дуплираних елемената из сортираног низа
// Функција за уклањање дуплираних елемената из разврстаног низа
функција ремовеДуплицатеЕлементс (арр, величина)
{
нека ј = 0;
за (нека је и = 0; и {
// Ако и-ти елемент није једнак (и + 1) -том елементу,
// затим чувамо и-ту вредност у арр [ј]
иф (арр [и]! = арр [и + 1])
{
арр [ј] = арр [и];
ј ++;
}
}
// Похрањивање последње вредности арр у арр [ј]
арр [ј ++] = арр [величина-1];
ретурн ј;
}
функција принтАрраиЕлементс (арр, сизе) {
за (нека је и = 0; идоцумент.врите (арр [и] + "");
}
доцумент.врите ("
");
}
вар арр1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
вар сизе1 = арр1.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр1, сизе1);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
сизе1 = ремовеДуплицатеЕлементс (арр1, сизе1);
принтАрраиЕлементс (арр1, сизе1);
вар арр2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
вар сизе2 = арр2.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр2, сизе2);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
сизе2 = ремовеДуплицатеЕлементс (арр2, сизе2);
принтАрраиЕлементс (арр2, сизе2);
вар арр3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
вар сизе3 = арр3.ленгтх;
доцумент.врите ("Почетни низ:" + "
");
принтАрраиЕлементс (арр3, сизе3);
доцумент.врите ("Низ након уклањања дупликата:" + "
");
сизе3 = ремовеДуплицатеЕлементс (арр3, сизе3);
принтАрраиЕлементс (арр3, сизе3);

Излаз:

Повезан: Како пронаћи лик који се најчешће појављује у низу

Почетни низ: 
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

Вежбајте проблеме са низовима и низовима за следећи интервју

Проблеми са низовима и низовима међу најтраженијим су темама у техничким интервјуима.

Ако желите да се припремите што је више могуће, морате вежбати неке најчешће постављане проблеме као што је како проверити да ли је низ палиндром, како проверити да ли је низ анаграм, пронађите знак који се најчешће појављује у низу, како обрнути низ, алгоритме за сортирање и претраживање на основу низова, како обрнути низ, итд.

Емаил
Како обрнути низ у Ц ++, Питхон и ЈаваСцрипт

Научите како да преокренете низ уназад на напред на три различита језика.

Прочитајте следеће

Повезане теме
  • Програмирање
  • ЈаваСцрипт
  • Питхон
  • Водичи за кодирање
О аутору
Иуврај Цхандра (Објављено 40 чланака)

Иуврај је студент основних студија рачунарства на Универзитету у Делхију у Индији. Одушевљен је Фулл Стацк веб развојем. Када не пише, истражује дубину различитих технологија.

Још од Иуврај Цхандра

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили