מערך הוא אוסף של אלמנטים עם אותם סוגי נתונים. זהו מבנה נתונים ליניארי ומאוחסן במיקומי זיכרון רצופים. אתה יכול לבצע פעולות בסיסיות רבות במערך כגון הכנסה, מחיקה, חיפוש, עדכון, מעבר וכו '.
במאמר זה תלמד כיצד להסיר אלמנטים כפולים ממערכים ממוינים ולא ממוינים.
כיצד להסיר אלמנטים כפולים ממערך לא ממוין
הצהרת בעיה
נותנים לך מערך שלם לא ממוין. עליכם להסיר את האלמנטים הכפולים מהמערך ולהדפיס את המערך באלמנטים ייחודיים.
דוגמה 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.
גישה להסרת אלמנטים כפולים ממערך לא ממוין
ניתן להסיר אלמנטים כפולים ממערך לא ממוין על ידי ביצוע הגישה הבאה:
- אתחל מפת hash שתאחסן את כל האלמנטים הייחודיים של המערך.
- חצו את המערך.
- בדוק אם האלמנט קיים במערך.
- אם האלמנט קיים במערך, המשך לעבור.
- אם האלמנט אינו קיים במערך, הדפיס את האלמנט ושמור אותו במפת החשיש.
הערה: מורכבות הזמן של פתרון זה היא O (n).
תוכנית C ++ להסרת אלמנטים כפולים ממערך לא ממוין
להלן תוכנית C ++ להסרת אלמנטים כפולים ממערך לא ממוין:
// C ++ תוכנית להסרת אלמנטים כפולים ממערך לא ממוין
#לִכלוֹל
באמצעות std namespace;
// פונקציה להסרת אלמנטים כפולים ממערך לא ממוין
בטל removeDuplicateElements (int arr [], גודל int)
{
unmormed_map M;
עבור (int i = 0; אני{
// הדפיסו את האלמנט אם לא
// נוכח במפת החשיש
אם (m.find (arr [i]) == m.end ())
{
cout << arr [i] << "";
}
// הכנס את האלמנט למפת החשיש
m [arr [i]] = נכון;
}
cout << endl;
}
בטל printArrayElements (int arr [], גודל int)
{
עבור (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
קָשׁוּר: כיצד להדפיס "שלום עולם!" בשפות התכנות הפופולריות ביותר
תוכנית פייתון להסרת אלמנטים כפולים ממערך לא ממוין
להלן תוכנית Python להסרת אלמנטים כפולים ממערך לא ממוין:
תוכנית Python להסרת אלמנטים כפולים מרשימה לא ממוינת
def removeDuplicateElements (arr, גודל):
m = {}
עבור אני בטווח (גודל):
# הדפיסו את האלמנט אם לא
# נוכח במילון
אם arr [i] לא ב- m:
הדפס (arr [i], end = "")
# הכנס את האלמנט למילון
m [arr [i]] = 1
הדפס()
def printListElements (arr, גודל):
עבור אני בטווח (גודל):
הדפס (arr [i], end = "")
הדפס()
arr1 = [23, 35, 23, 56, 67, 35, 35, 54, 76]
size1 = len (arr1)
הדפס ("הרשימה הראשונית:")
printListElements (arr1, size1)
הדפס ("רשימה לאחר הסרת כפילויות:")
removeDuplicateElements (arr1, size1)
arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8]
size2 = len (arr2)
הדפס ("הרשימה הראשונית:")
printListElements (arr2, size2)
הדפס ("רשימה לאחר הסרת כפילויות:")
removeDuplicateElements (arr2, size2)
arr3 = [32, 35, 33, 32, 33, 38, 32, 39]
size3 = len (arr3)
הדפס ("הרשימה הראשונית:")
printListElements (arr3, size3)
הדפס ("רשימה לאחר הסרת כפילויות:")
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, size) {
תן m = מפה חדשה ();
עבור (תן i = 0; אני // הדפיסו את האלמנט אם לא
// נוכח במפת החשיש
אם (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];
תן לגודל 1 = arr1.length;
document.write ("מערך ראשוני:" + "
");
printArrayElements (arr1, size1);
document.write ("מערך לאחר הסרת כפילויות:" + "
");
removeDuplicateElements (arr1, size1);
תן arr2 = [5, 6, 1, 1, 7, 5, 8, 2, 7, 8];
תן לגודל 2 = arr2.length;
document.write ("מערך ראשוני:" + "
");
printArrayElements (arr2, size2);
document.write ("מערך לאחר הסרת כפילויות:" + "
");
removeDuplicateElements (arr2, size2);
תן arr3 = [32, 35, 33, 32, 33, 38, 32, 39];
תן לגודל 3 = 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.
- חזרו על המערך.
- אם האלמנט ith אינו שווה לאלמנט ה (i + 1), אחסן את ערך ה- i arr [j] והגדיל את הערך של j.
- הגדל את ערך ה- i בכל איטרציה.
- אחסן את הערך האחרון של arr ב arr [j].
- לבסוף החזירו את הגודל החדש של המערך כלומר, j. אלמנטים ייחודיים יאוחסנו במערך מאינדקס 0 עד j-1.
הערה: מורכבות הזמן של פתרון זה היא O (n).
תוכנית C ++ להסרת אלמנטים כפולים ממערך ממוין
להלן תוכנית C ++ להסרת אלמנטים כפולים ממערך ממוין:
// C ++ תוכנית להסרת אלמנטים כפולים ממערך ממוין
#לִכלוֹל
באמצעות std namespace;
// פונקציה להסרת אלמנטים כפולים ממערך ממוין
int removeDuplicateElements (int arr [], גודל int)
{
int j = 0;
עבור (int i = 0; אני {
// אם האלמנט ith אינו שווה לאלמנט ה (i + 1),
// אז אחסן את ערך ה- i arr [j]
אם (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// אחסון הערך האחרון של arr ב arr [j]
arr [j ++] = arr [size-1];
להחזיר j;
}
בטל printArrayElements (int arr [], גודל int)
{
עבור (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 להסרת אלמנטים כפולים ממערך ממוין
def removeDuplicateElements (arr, גודל):
j = 0
עבור אני בטווח (גודל -1):
אם arr [i]! = arr [i + 1]:
arr [j] = arr [i]
j = j + 1
arr [j] = arr [size-1]
j = j + 1
להחזיר j
def printListElements (arr, גודל):
עבור אני בטווח (גודל):
הדפס (arr [i], end = "")
הדפס()
arr1 = [1, 1, 1, 2, 4, 6, 8, 8, 9, 9]
size1 = len (arr1)
הדפס ("מערך ראשוני:")
printListElements (arr1, size1)
הדפס ("מערך לאחר הסרת כפילויות:")
size1 = removeDuplicateElements (arr1, size1)
printListElements (arr1, size1)
arr2 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
size2 = len (arr2)
הדפס ("מערך ראשוני:")
printListElements (arr2, size2)
הדפס ("מערך לאחר הסרת כפילויות:")
size2 = removeDuplicateElements (arr2, size2)
printListElements (arr2, size2)
arr3 = [10, 12, 12, 14, 16, 16, 18, 19, 19]
size3 = len (arr3)
הדפס ("מערך ראשוני:")
printListElements (arr3, size3)
הדפס ("מערך לאחר הסרת כפילויות:")
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; אני {
// אם האלמנט ith אינו שווה לאלמנט ה (i + 1),
// אז אחסן את ערך ה- i arr [j]
אם (arr [i]! = arr [i + 1])
{
arr [j] = arr [i];
j ++;
}
}
// אחסון הערך האחרון של arr ב arr [j]
arr [j ++] = arr [size-1];
להחזיר 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
תרגול בעיות מיתרים ומערך לראיון הבא שלך
בעיות מיתרים ומערכים הם בין הנושאים הנפוצים ביותר בראיונות טכניים.
אם אתה מעוניין להיות מוכן ככל האפשר, עליך לתרגל כמה בעיות נפוצות, כמו לבדוק אם מחרוזת היא פלינדרום, כיצד לבדוק אם מחרוזת היא אנגרמה, מצא את הדמות הנפוצה ביותר במחרוזת, כיצד להפוך מערך, מיון וחיפוש אלגוריתמים המבוססים על מערכים, כיצד להפוך מחרוזת, וכו '
למד כיצד להפוך מחרוזת חזיתית לשלוש שפות שונות.
קרא הבא
- תִכנוּת
- JavaScript
- פִּיתוֹן
- הדרכות קידוד
יוברג 'הוא סטודנט לתואר ראשון במדעי המחשב באוניברסיטת דלהי, הודו. הוא נלהב מפיתוח אתרים של Full Stack. כשהוא לא כותב, הוא בוחן את עומק הטכנולוגיות השונות.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן להרשמה