Masīvs ir elementu kolekcija ar vienādiem datu tipiem. Tā ir lineāra datu struktūra un tiek glabāta blakus esošās atmiņas vietās. Ar masīvu var veikt daudzas pamata darbības, piemēram, ievietošanu, dzēšanu, meklēšanu, atjaunināšanu, šķērsošanu utt.

Šajā rakstā jūs uzzināsiet, kā noņemt elementu dublikātus no sakārtotajiem un nešķirotajiem masīviem.

Kā noņemt dublētus elementus no nesakārtotā masīva

Problēmas izklāsts

Jums tiek dots nešķirots veselu skaitļu masīvs. Jums jānoņem dublētie elementi no masīva un jāizdrukā masīvs ar unikāliem elementiem.

1. piemērs: Ļaujiet arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Masīvs pēc dublikātu elementu noņemšanas: 23 35 56 67 54 76

Tādējādi produkcija ir 23 35 56 67 54 76.

2. piemērs: Ļaujiet arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Masīvs pēc dublikātu elementu noņemšanas: 5 6 1 7 8 2

Tādējādi izeja ir 5 6 1 7 8 2.

Pieeja dublētu elementu noņemšanai no nešķirota masīva

Varat noņemt elementu dublikātus no nešķirota masīva, rīkojoties šādi:

  1. Inicializējiet jaukšanas karti, kurā tiks saglabāti visi masīva unikālie elementi.
  2. Pārvietojiet masīvu.
  3. Pārbaudiet, vai elements atrodas masīvā.
  4. Ja elements atrodas masīvā, turpiniet pārvietoties.
  5. Ja masīvā elementa nav, izdrukājiet elementu un saglabājiet to jaucējkartē.

Piezīme: Šī risinājuma laika sarežģītība ir O (n).

C ++ programma, lai noņemtu dublētus elementus no nesakārtotā masīva

Zemāk ir C ++ programma, lai noņemtu elementu dublikātus no nešķirotā masīva:

// C ++ programma, lai noņemtu elementu dublikātus no nešķirotā masīva
# iekļaut
izmantojot nosaukumvietu std;
// Funkcija, lai noņemtu dublētus elementus no nešķirota masīva
void removeDuplicateElements (int arr [], int izmērs)
{
nesakārtots_karte m;
par (int i = 0; i{
// Izdrukājiet elementu, ja tā nav
// klāt hash kartē
ja (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// Ievietojiet elementu jaukšanas kartē
m [arr [i]] = taisnība;
}
cout << endl;
}
void printArrayElements (int arr [], int izmērs)
{
par (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 << "Sākotnējais masīvs:" << endl;
printArrayElements (arr1, izmērs1);
cout << "Masīvs pēc dublikātu noņemšanas:" << endl;
removeDuplicateElements (arr1, izmērs1);
int arr2 [] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Sākotnējais masīvs:" << endl;
printArrayElements (arr2, size2);
cout << "Masīvs pēc dublikātu noņemšanas:" << endl;
removeDuplicateElements (arr2, size2);
int arr3 [] = {32, 35, 33, 32, 33, 38, 32, 39};
int size3 = sizeof (arr3) / sizeof (arr3 [0]);
cout << "Sākotnējais masīvs:" << endl;
printArrayElements (arr3, izmērs3);
cout << "Masīvs pēc dublikātu noņemšanas:" << endl;
removeDuplicateElements (arr3, izmērs3);
atgriešanās 0;
}

Izeja:

Sākotnējais masīvs: 
23 35 23 56 67 35 35 54 76
Masīvs pēc dublikātu noņemšanas:
23 35 56 67 54 76
Sākotnējais masīvs:
5 6 1 1 7 5 8 2 7 8
Masīvs pēc dublikātu noņemšanas:
5 6 1 7 8 2
Sākotnējais masīvs:
32 35 33 32 33 38 32 39
Masīvs pēc dublikātu noņemšanas:
32 35 33 38 39

Saistīts: Kā izdrukāt "Sveika, pasaule!" populārākajās programmēšanas valodās

Python programma dublētu elementu noņemšanai no nesakārtota masīva

Zemāk ir programma Python, lai noņemtu elementu dublikātus no nešķirotā masīva:

# Python programma dublētu elementu noņemšanai no nešķirotā saraksta
def removeDuplicateElements (arr, izmērs):
m = {}
i diapazonā (izmērs):
# Izdrukājiet elementu, ja tā nav
# atrodas vārdnīcā
ja arr [i] nav metros:
drukāt (arr [i], end = "")
# Ievietojiet elementu vārdnīcā
m [arr [i]] = 1
izdrukāt ()
def printListElements (arr, izmērs):
i diapazonā (izmērs):
drukāt (arr [i], end = "")
izdrukāt ()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
drukāt ("Sākotnējais saraksts:")
printListElements (arr1, size1)
drukāt ("Saraksts pēc dublikātu noņemšanas:")
removeDuplicateElements (arr1, izmērs1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
drukāt ("Sākotnējais saraksts:")
printListElements (arr2, size2)
drukāt ("Saraksts pēc dublikātu noņemšanas:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
drukāt ("Sākotnējais saraksts:")
printListElements (arr3, size3)
drukāt ("Saraksts pēc dublikātu noņemšanas:")
removeDuplicateElements (arr3, izmērs3)

Izeja:

Sākotnējais masīvs: 
23 35 23 56 67 35 35 54 76
Masīvs pēc dublikātu noņemšanas:
23 35 56 67 54 76
Sākotnējais masīvs:
5 6 1 1 7 5 8 2 7 8
Masīvs pēc dublikātu noņemšanas:
5 6 1 7 8 2
Sākotnējais masīvs:
32 35 33 32 33 38 32 39
Masīvs pēc dublikātu noņemšanas:
32 35 33 38 39

JavaScript programma, lai noņemtu dublētus elementus no nesakārtotā masīva

Zemāk ir JavaScript programma, lai noņemtu elementu dublikātus no nešķirotā masīva:

// JavaScript programma, lai noņemtu elementu dublikātus no nešķirota masīva
// Funkcija, lai noņemtu dublētus elementus no nešķirota masīva
funkcija removeDuplicateElements (arr, size) {
ļaujiet m = jauna karte ();
par (lai i = 0; i // Izdrukājiet elementu, ja tā nav
// klāt hash kartē
ja (m.get (arr [i]) == null) {
document.write (arr [i] + "");
}
// Ievietojiet elementu jaukšanas kartē
m.set (arr [i], taisnība);
}
document.write ("
");
}
funkcija printArrayElements (arr, size) {
par (lai i = 0; idocument.write (arr [i] + "");
}
document.write ("
");
}
ļaujiet arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
ļaujiet izmēram1 = arr1.length;
document.write ("Sākotnējais masīvs:" + "
");
printArrayElements (arr1, izmērs1);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
removeDuplicateElements (arr1, izmērs1);
ļaujiet arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
let size2 = arr2.length;
document.write ("Sākotnējais masīvs:" + "
");
printArrayElements (arr2, size2);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
removeDuplicateElements (arr2, size2);
ļaujiet arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
ļaujiet izmēram 3 = arr3.length;
document.write ("Sākotnējais masīvs:" + "
");
printArrayElements (arr3, izmērs3);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
removeDuplicateElements (arr3, izmērs3);

Izeja:

Sākotnējais masīvs: 
23 35 23 56 67 35 35 54 76
Masīvs pēc dublikātu noņemšanas:
23 35 56 67 54 76
Sākotnējais masīvs:
5 6 1 1 7 5 8 2 7 8
Masīvs pēc dublikātu noņemšanas:
5 6 1 7 8 2
Sākotnējais masīvs:
32 35 33 32 33 38 32 39
Masīvs pēc dublikātu noņemšanas:
32 35 33 38 39

Saistīts: Kā saskaitīt dotās rakstzīmes gadījumus virknē

Kā noņemt dublētus elementus no sakārtotā masīva

Problēmas izklāsts

Jums tiek dots sakārtots veselu skaitļu masīvs. Jums jānoņem dublētie elementi no masīva un jāizdrukā masīvs ar unikāliem elementiem.

1. piemērs: Ļaujiet arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Masīvs pēc dublikātu elementu noņemšanas: 1 2 4 6 8 9

Tādējādi izeja ir 1 2 4 6 8 9.

2. piemērs: Ļaujiet arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Masīvs pēc dublikātu elementu noņemšanas: 1 2 3 4 5

Tādējādi izeja ir 1 2 3 4 5.

Pieeja dublēto elementu noņemšanai no sakārtotā masīva

Varat noņemt dublikātu elementus no sakārtotā masīva, rīkojoties šādi:

  1. Inicializējiet indeksa mainīgos i un j ar 0.
  2. Atkārtojiet masīvu.
  3. Ja i-tais elements nav vienāds ar (i + 1) -to elementu, tad saglabājiet i-to vērtību arr [j] un palieliniet j vērtību.
  4. Palieliniet i vērtību katrā atkārtojumā.
  5. Saglabājiet arr pēdējo vērtību arr [j].
  6. Visbeidzot atgrieziet jauno masīva izmēru, t.i., j. Unikālie elementi tiks saglabāti masīvā no 0 līdz j-1.

Piezīme: Šī risinājuma laika sarežģītība ir O (n).

C ++ programma, lai noņemtu dublētus elementus no sakārtotā masīva

Zemāk ir C ++ programma, lai noņemtu elementu dublikātus no sakārtotā masīva:

// C ++ programma dublētu elementu noņemšanai no sakārtotā masīva
# iekļaut
izmantojot nosaukumvietu std;
// Funkcija, lai noņemtu dublētus elementus no sakārtotā masīva
int removeDuplicateElements (int arr [], int izmērs)
{
int j = 0;
par (int i = 0; i {
// Ja i.elements nav vienāds ar (i + 1). Elementu,
// pēc tam saglabājiet i-to vērtību arr [j]
ja (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// arr pēdējās arr vērtības saglabāšana [j]
arr [j ++] = arr [izmērs-1];
atgriešanās j;
}
void printArrayElements (int arr [], int izmērs)
{
par (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 << "Sākotnējais masīvs:" << endl;
printArrayElements (arr1, izmērs1);
cout << "Masīvs pēc dublikātu noņemšanas:" << endl;
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, izmērs1);
int arr2 [] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int size2 = sizeof (arr2) / sizeof (arr2 [0]);
cout << "Sākotnējais masīvs:" << endl;
printArrayElements (arr2, size2);
cout << "Masīvs pēc dublikātu noņemšanas:" << 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 << "Sākotnējais masīvs:" << endl;
printArrayElements (arr3, izmērs3);
cout << "Masīvs pēc dublikātu noņemšanas:" << endl;
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, izmērs3);
atgriešanās 0;
}

Izeja:

Sākotnējais masīvs: 
1 1 1 2 4 6 8 8 9 9
Masīvs pēc dublikātu noņemšanas:
1 2 4 6 8 9
Sākotnējais masīvs:
1 1 2 2 3 3 4 4 5 5
Masīvs pēc dublikātu noņemšanas:
1 2 3 4 5
Sākotnējais masīvs:
10 12 12 14 16 16 18 19 19
Masīvs pēc dublikātu noņemšanas:
10 12 14 16 18 19

Python programma, lai noņemtu dublētus elementus no sakārtota masīva

Zemāk ir programma Python, lai noņemtu elementu dublikātus no sakārtotā masīva:

# Python programma dublikātu elementu noņemšanai no sakārtotā masīva
def removeDuplicateElements (arr, izmērs):
j = 0
i diapazonā (1. izmērs):
ja arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [size-1]
j = j + 1
atgriešanās j
def printListElements (arr, izmērs):
i diapazonā (izmērs):
drukāt (arr [i], end = "")
izdrukāt ()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
drukāt ("Sākotnējais masīvs:")
printListElements (arr1, size1)
drukāt ("Masīvs pēc dublikātu noņemšanas:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
drukāt ("Sākotnējais masīvs:")
printListElements (arr2, size2)
drukāt ("Masīvs pēc dublikātu noņemšanas:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
drukāt ("Sākotnējais masīvs:")
printListElements (arr3, size3)
drukāt ("Masīvs pēc dublikātu noņemšanas:")
size3 = removeDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Izeja:

Sākotnējais masīvs: 
1 1 1 2 4 6 8 8 9 9
Masīvs pēc dublikātu noņemšanas:
1 2 4 6 8 9
Sākotnējais masīvs:
1 1 2 2 3 3 4 4 5 5
Masīvs pēc dublikātu noņemšanas:
1 2 3 4 5
Sākotnējais masīvs:
10 12 12 14 16 16 18 19 19
Masīvs pēc dublikātu noņemšanas:
10 12 14 16 18 19

Saistīts: Ievads sapludināšanas šķirošanas algoritmā

JavaScript programma, lai noņemtu dublētus elementus no sakārtota masīva

Zemāk ir JavaScript programma, lai noņemtu elementu dublikātus no sakārtotā masīva:

// JavaScript programma, lai noņemtu dublētus elementus no sakārtotā masīva
// Funkcija, lai noņemtu dublētus elementus no sakārtotā masīva
funkcija removeDuplicateElements (arr, izmērs)
{
ļaujiet j = 0;
par (lai i = 0; i {
// Ja i.elements nav vienāds ar (i + 1). Elementu,
// pēc tam saglabājiet i-to vērtību arr [j]
ja (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// arr pēdējās arr vērtības saglabāšana [j]
arr [j ++] = arr [izmērs-1];
atgriešanās j;
}
funkcija printArrayElements (arr, size) {
par (lai 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 ("Sākotnējais masīvs:" + "
");
printArrayElements (arr1, izmērs1);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
size1 = removeDuplicateElements (arr1, size1);
printArrayElements (arr1, izmērs1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
var size2 = arr2.length;
document.write ("Sākotnējais masīvs:" + "
");
printArrayElements (arr2, size2);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
size2 = removeDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write ("Sākotnējais masīvs:" + "
");
printArrayElements (arr3, izmērs3);
document.write ("Masīvs pēc dublikātu noņemšanas:" + "
");
size3 = removeDuplicateElements (arr3, size3);
printArrayElements (arr3, izmērs3);

Izeja:

Saistīts: Kā atrast virknē visbiežāk sastopamo rakstzīmi

Sākotnējais masīvs: 
1 1 1 2 4 6 8 8 9 9
Masīvs pēc dublikātu noņemšanas:
1 2 4 6 8 9
Sākotnējais masīvs:
1 1 2 2 3 3 4 4 5 5
Masīvs pēc dublikātu noņemšanas:
1 2 3 4 5
Sākotnējais masīvs:
10 12 12 14 16 16 18 19 19
Masīvs pēc dublikātu noņemšanas:
10 12 14 16 18 19

Praktizējiet virkņu un masīvu problēmas nākamajā intervijā

Stīgu un masīvu problēmas ir starp visbiežāk uzdotajām tēmām tehniskajās intervijās.

Ja jūs vēlaties būt pēc iespējas sagatavotāks, jums jāapmeklē dažas bieži uzdotās problēmas, piemēram, kā pārbaudīt, vai virkne ir palindroma, kā pārbaudīt, vai virkne ir anagramma, atrodiet virknē visbiežāk sastopamo rakstzīmi, kā mainīt masīvu, kārtot un meklēt algoritmus, pamatojoties uz masīviem, kā mainīt virkni, utt.

E-pasts
Kā mainīt virkni C ++, Python un JavaScript

Uzziniet, kā mainīt virkni atpakaļ trīs dažādās valodās.

Lasiet Tālāk

Saistītās tēmas
  • Programmēšana
  • JavaScript
  • Python
  • Kodēšanas konsultācijas
Par autoru
Yuvraj Chandra (Publicēti 40 raksti)

Yuvraj ir datorzinātņu bakalaura students Deli universitātē, Indijā. Viņš aizrauj pilnas skursteņa tīmekļa attīstību. Kad viņš neraksta, viņš pēta dažādu tehnoloģiju dziļumu.

Vairāk no Yuvraj Chandra

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Noklikšķiniet šeit, lai abonētu