Tablica to zbiór elementów o tych samych typach danych. Jest to liniowa struktura danych i jest przechowywana w ciągłych lokalizacjach pamięci. Możesz wykonać wiele podstawowych operacji na tablicy, takich jak wstawianie, usuwanie, wyszukiwanie, aktualizacja, przemierzanie itp.

W tym artykule dowiesz się, jak usunąć zduplikowane elementy z posortowanych i nieposortowanych tablic.

Jak usunąć zduplikowane elementy z nieposortowanej tablicy

Stwierdzenie problemu

Dostajesz nieposortowaną tablicę liczb całkowitych. Musisz usunąć zduplikowane elementy z tablicy i wydrukować tablicę z unikalnymi elementami.

Przykład 1: Niech arr = [23, 35, 23, 56, 67, 35, 35, 54, 76]

Tablica po usunięciu zduplikowanych elementów: 23 35 56 67 54 76

Zatem wynik wynosi 23 35 56 67 54 76.

Przykład 2: Niech arr = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]

Tablica po usunięciu zduplikowanych elementów: 5 6 1 7 8 2

Zatem wynik wynosi 5 6 1 7 8 2.

Podejście do usuwania zduplikowanych elementów z nieposortowanej tablicy

Możesz usunąć zduplikowane elementy z nieposortowanej tablicy, postępując zgodnie z poniższym podejściem:

instagram viewer

  1. Zainicjuj mapę mieszania, która będzie przechowywać wszystkie unikalne elementy tablicy.
  2. Przemierz szyk.
  3. Sprawdź, czy element jest obecny w tablicy.
  4. Jeśli element jest obecny w tablicy, kontynuuj przechodzenie.
  5. Jeśli element nie występuje w tablicy, wydrukuj element i zapisz go w mapie mieszania.

Notatka: Złożoność czasowa tego rozwiązania wynosi O(n).

Program C++ do usuwania zduplikowanych elementów z nieposortowanej tablicy

Poniżej znajduje się program C++ do usuwania zduplikowanych elementów z nieposortowanej tablicy:

// program w C++ do usuwania zduplikowanych elementów z nieposortowanej tablicy
#zawierać
używając standardowej przestrzeni nazw;
// Funkcja do usuwania zduplikowanych elementów z nieposortowanej tablicy
void removeDuplicateElements (int arr[], int size)
{
unordered_map m;
dla (int i=0; i{
// Wydrukuj element, jeśli nie jest
// obecny na mapie hash
if (m.find (arr[i]) == m.end())
{
cout << arr[i] << " ";
}
// Wstaw element do hash map
m[arr[i]] = prawda;
}
cout << endl;
}
void printArrayElements (int arr[], int rozmiar)
{
dla (int i=0; i{
cout << arr[i] << " ";
}
cout << endl;
}
int main()
{
int arr1[] = {23, 35, 23, 56, 67, 35, 35, 54, 76};
int rozmiar1 = rozmiar(arr1)/rozmiar(arr1[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr1, size1);
cout << "Tablica po usunięciu duplikatów: " << endl;
removeDuplicateElements (arr1, size1);
int arr2[] = {5, 6, 1, 1, 7, 5, 8, 2, 7, 8};
int rozmiar2 = rozmiar(arr2)/rozmiar(arr2[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr2, size2);
cout << "Tablica po usunięciu duplikatów: " << endl;
removeDuplicateElements (arr2, size2);
int arr3[] = {32, 35, 33, 32, 33, 38, 32, 39};
int rozmiar3 = rozmiar(arr3)/rozmiar(arr3[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr3, size3);
cout << "Tablica po usunięciu duplikatów: " << endl;
removeDuplicateElements (arr3, size3);
zwróć 0;
}

Wyjście:

Tablica początkowa: 
23 35 23 56 67 35 35 54 76
Tablica po usunięciu duplikatów:
23 35 56 67 54 76
Tablica początkowa:
5 6 1 1 7 5 8 2 7 8
Tablica po usunięciu duplikatów:
5 6 1 7 8 2
Tablica początkowa:
32 35 33 32 33 38 32 39
Tablica po usunięciu duplikatów:
32 35 33 38 39

Związane z: Jak wydrukować "Witaj świecie!" w najpopularniejszych językach programowania

Program Pythona do usuwania zduplikowanych elementów z nieposortowanej tablicy

Poniżej znajduje się program Pythona do usuwania zduplikowanych elementów z nieposortowanej tablicy:

# Program Pythona do usuwania zduplikowanych elementów z nieposortowanej listy
def removeDuplicateElements (arr, rozmiar):
m = {}
dla i w zakresie (rozmiar):
# Wydrukuj element, jeśli nie jest
# obecny w słowniku
jeśli arr[i] nie w m:
print (arr[i], end = " ")
# Wstaw element do słownika
m[arr[i]] = 1
wydrukować()
def printListElements (arr, rozmiar):
dla i w zakresie (rozmiar):
drukuj (arr[i], end=" ")
wydrukować()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
print("Początkowa lista:")
printListElements (arr1, rozmiar1)
print("Lista po usunięciu duplikatów: ")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
print("Początkowa lista:")
printListElements (arr2, size2)
print("Lista po usunięciu duplikatów: ")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
rozmiar3 = dł (arr3)
print("Początkowa lista:")
printListElements (arr3, size3)
print("Lista po usunięciu duplikatów: ")
removeDuplicateElements (arr3, size3)

Wyjście:

Tablica początkowa: 
23 35 23 56 67 35 35 54 76
Tablica po usunięciu duplikatów:
23 35 56 67 54 76
Tablica początkowa:
5 6 1 1 7 5 8 2 7 8
Tablica po usunięciu duplikatów:
5 6 1 7 8 2
Tablica początkowa:
32 35 33 32 33 38 32 39
Tablica po usunięciu duplikatów:
32 35 33 38 39

Program JavaScript do usuwania zduplikowanych elementów z nieposortowanej tablicy

Poniżej znajduje się program JavaScript do usuwania zduplikowanych elementów z nieposortowanej tablicy:

// program JavaScript do usuwania zduplikowanych elementów z nieposortowanej tablicy
// Funkcja do usuwania zduplikowanych elementów z nieposortowanej tablicy
function removeDuplicateElements (arr, size) {
niech m = new Map();
dla (niech i = 0; ja < rozmiar; i++) {
// Wydrukuj element, jeśli nie jest
// obecny na mapie hash
if (m.get (arr[i]) == null) {
document.write (arr[i] + " ");
}
// Wstaw element do hash map
m.set (arr[i], prawda);
}
dokument.zapis("
");
}
function printArrayElements (arr, rozmiar) {
dla (niech i=0; idocument.write (arr[i] + " ");
}
dokument.zapis("
");
}
niech arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76];
niech size1 = arr1.length;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr1, size1);
document.write("Tablica po usunięciu duplikatów: " + "
");
removeDuplicateElements (arr1, size1);
niech arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
niech rozmiar2 = arr2.długość;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr2, size2);
document.write("Tablica po usunięciu duplikatów: " + "
");
removeDuplicateElements (arr2, size2);
niech arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
niech size3 = arr3.length;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr3, size3);
document.write("Tablica po usunięciu duplikatów: " + "
");
removeDuplicateElements (arr3, size3);

Wyjście:

Tablica początkowa: 
23 35 23 56 67 35 35 54 76
Tablica po usunięciu duplikatów:
23 35 56 67 54 76
Tablica początkowa:
5 6 1 1 7 5 8 2 7 8
Tablica po usunięciu duplikatów:
5 6 1 7 8 2
Tablica początkowa:
32 35 33 32 33 38 32 39
Tablica po usunięciu duplikatów:
32 35 33 38 39

Związane z: Jak policzyć wystąpienia danego znaku w ciągu?

Jak usunąć zduplikowane elementy z posortowanej tablicy

Stwierdzenie problemu

Dostajesz posortowaną tablicę liczb całkowitych. Musisz usunąć zduplikowane elementy z tablicy i wydrukować tablicę z unikalnymi elementami.

Przykład 1: Niech arr = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]

Tablica po usunięciu zduplikowanych elementów: 1 2 4 6 8 9

Zatem wynik wynosi 1 2 4 6 8 9.

Przykład 2: Niech arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

Tablica po usunięciu zduplikowanych elementów: 1 2 3 4 5

Zatem wynik wynosi 1 2 3 4 5.

Podejście do usuwania zduplikowanych elementów z posortowanej tablicy

Możesz usunąć zduplikowane elementy z posortowanej tablicy, postępując zgodnie z poniższym podejściem:

  1. Zainicjuj zmienne indeksujące i oraz j od 0.
  2. Iteruj tablicę.
  3. Jeśli i-ty element nie jest równy (i+1)-temu elementowi, zapisz i-tą wartość w arr[j] i zwiększ wartość j.
  4. Zwiększ wartość i w każdej iteracji.
  5. Zapisz ostatnią wartość arr w arr[j].
  6. Na koniec zwróć nowy rozmiar tablicy, tj. j. Unikalne elementy będą przechowywane w tablicy od indeksu 0 do j-1.

Notatka: Złożoność czasowa tego rozwiązania wynosi O(n).

Program C++ do usuwania zduplikowanych elementów z posortowanej tablicy

Poniżej znajduje się program C++ do usuwania zduplikowanych elementów z posortowanej tablicy:

// program w C++ do usuwania zduplikowanych elementów z posortowanej tablicy
#zawierać
używając standardowej przestrzeni nazw;
// Funkcja do usuwania zduplikowanych elementów z posortowanej tablicy
int removeDuplicateElements (int arr[], rozmiar int)
{
intj = 0;
dla (int i = 0; i < rozmiar-1; i++)
{
// Jeśli i-ty element nie jest równy (i+1)-temu elementowi,
// następnie zapisz i-tą wartość w arr[j]
if (arr[i] != tab[i+1])
{
przyp[j] = przyp[i];
j++;
}
}
// Przechowywanie ostatniej wartości arr w arr[j]
przyp[j++] = przyp[rozmiar-1];
powrót j;
}
void printArrayElements (int arr[], int rozmiar)
{
dla (int i=0; i{
cout << arr[i] << " ";
}
cout << endl;
}
int main()
{
int arr1[] = {1, 1, 1, 2, 4, 6, 8, 8, 9, 9};
int rozmiar1 = rozmiar(arr1)/rozmiar(arr1[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr1, size1);
cout << "Tablica po usunięciu duplikatów: " << endl;
size1 = usuńDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
int arr2[] = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
int rozmiar2 = rozmiar(arr2)/rozmiar(arr2[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr2, size2);
cout << "Tablica po usunięciu duplikatów: " << endl;
size2 = usuńDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
int arr3[] = {10, 12, 12, 14, 16, 16, 18, 19, 19};
int rozmiar3 = rozmiar(arr3)/rozmiar(arr3[0]);
cout << "Początkowa tablica: " << endl;
printArrayElements (arr3, size3);
cout << "Tablica po usunięciu duplikatów: " << endl;
size3 = usuńDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);
zwróć 0;
}

Wyjście:

Tablica początkowa: 
1 1 1 2 4 6 8 8 9 9
Tablica po usunięciu duplikatów:
1 2 4 6 8 9
Tablica początkowa:
1 1 2 2 3 3 4 4 5 5
Tablica po usunięciu duplikatów:
1 2 3 4 5
Tablica początkowa:
10 12 12 14 16 16 18 19 19
Tablica po usunięciu duplikatów:
10 12 14 16 18 19

Program Pythona do usuwania zduplikowanych elementów z posortowanej tablicy

Poniżej znajduje się program Pythona do usuwania zduplikowanych elementów z posortowanej tablicy:

# Program Pythona do usuwania zduplikowanych elementów z posortowanej tablicy
def removeDuplicateElements (arr, rozmiar):
j = 0
dla i w zakresie (rozmiar-1):
jeśli przyp[i] != przyp[i+1]:
przyp[j] = przyp[i]
j = j+1
przyp[j] = przyp[rozmiar-1]
j = j+1
powrót
def printListElements (arr, rozmiar):
dla i w zakresie (rozmiar):
drukuj (arr[i], end=" ")
wydrukować()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
print("Początkowa tablica:")
printListElements (arr1, rozmiar1)
print("Tablica po usunięciu duplikatów:")
size1 = usuńDuplicateElements (arr1, size1)
printListElements (arr1, rozmiar1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
print("Początkowa tablica:")
printListElements (arr2, size2)
print("Tablica po usunięciu duplikatów:")
size2 = usuńDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
rozmiar3 = dł (arr3)
print("Początkowa tablica:")
printListElements (arr3, size3)
print("Tablica po usunięciu duplikatów:")
size3 = usuńDuplicateElements (arr3, size3)
printListElements (arr3, size3)

Wyjście:

Tablica początkowa: 
1 1 1 2 4 6 8 8 9 9
Tablica po usunięciu duplikatów:
1 2 4 6 8 9
Tablica początkowa:
1 1 2 2 3 3 4 4 5 5
Tablica po usunięciu duplikatów:
1 2 3 4 5
Tablica początkowa:
10 12 12 14 16 16 18 19 19
Tablica po usunięciu duplikatów:
10 12 14 16 18 19

Związane z: Wprowadzenie do algorytmu sortowania przez scalanie

Program JavaScript do usuwania zduplikowanych elementów z posortowanej tablicy

Poniżej znajduje się program JavaScript do usuwania zduplikowanych elementów z posortowanej tablicy:

// program JavaScript do usuwania zduplikowanych elementów z posortowanej tablicy
// Funkcja do usuwania zduplikowanych elementów z posortowanej tablicy
funkcja removeDuplicateElements (arr, size)
{
niech j = 0;
dla (niech i = 0; i < rozmiar-1; i++)
{
// Jeśli i-ty element nie jest równy (i+1)-temu elementowi,
// następnie zapisz i-tą wartość w arr[j]
if (arr[i] != tab[i+1])
{
przyp[j] = przyp[i];
j++;
}
}
// Przechowywanie ostatniej wartości arr w arr[j]
przyp[j++] = przyp[rozmiar-1];
powrót j;
}
function printArrayElements (arr, rozmiar) {
dla (niech i=0; idocument.write (arr[i] + " ");
}
dokument.zapis("
");
}
var arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9];
var size1 = arr1.length;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr1, size1);
document.write("Tablica po usunięciu duplikatów: " + "
");
size1 = usuńDuplicateElements (arr1, size1);
printArrayElements (arr1, size1);
var arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5];
zmienna rozmiar2 = arr2.długość;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr2, size2);
document.write("Tablica po usunięciu duplikatów: " + "
");
size2 = usuńDuplicateElements (arr2, size2);
printArrayElements (arr2, size2);
var arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19];
var size3 = arr3.length;
document.write("Początkowa tablica: " + "
");
printArrayElements (arr3, size3);
document.write("Tablica po usunięciu duplikatów: " + "
");
size3 = usuńDuplicateElements (arr3, size3);
printArrayElements (arr3, size3);

Wyjście:

Związane z: Jak znaleźć najczęściej występujący znak w ciągu?

Tablica początkowa: 
1 1 1 2 4 6 8 8 9 9
Tablica po usunięciu duplikatów:
1 2 4 6 8 9
Tablica początkowa:
1 1 2 2 3 3 4 4 5 5
Tablica po usunięciu duplikatów:
1 2 3 4 5
Tablica początkowa:
10 12 12 14 16 16 18 19 19
Tablica po usunięciu duplikatów:
10 12 14 16 18 19

Ćwicz problemy z ciągami i tablicami do następnego wywiadu

Problemy z ciągami i tablicami należą do najczęściej poruszanych tematów w wywiadach technicznych.

Jeśli chcesz być jak najlepiej przygotowany, musisz przećwiczyć niektóre często zadawane problemy, takie jak sprawdzanie, czy struna jest palindromem, jak sprawdzić, czy struna jest anagram, znaleźć najczęściej występujący znak w ciągu, jak odwrócić tablicę, algorytmy sortowania i wyszukiwania oparte na tablicach, jak odwrócić ciąg, itp.

E-mail
Jak odwrócić ciąg znaków w C++, Pythonie i JavaScript

Dowiedz się, jak odwrócić ciąg znaków do przodu w trzech różnych językach.

Czytaj dalej

Powiązane tematy
  • Programowanie
  • JavaScript
  • Pyton
  • Poradniki kodowania
O autorze
Yuvraj Chandra (40 opublikowanych artykułów)

Yuvraj jest studentem informatyki na Uniwersytecie w Delhi w Indiach. Jest pasjonatem Full Stack Web Development. Kiedy nie pisze, bada głębię różnych technologii.

Więcej od Yuvraja Chandra

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować