טיש פון קאָנטענץ[באַהאַלטן][ווייַזן]
- 1. ווי טאָן איר דעפינירן אַ Array?
- 2. דינאַמיש אַררייַס: וואָס זענען זיי? וואָס שטעלט זיי באַזונדער פון באַסיק אַררייַס?
- 3. ווי אַזוי בייַטן אַ מענגע און אַ ווערטערבוך פֿון איינער דעם אַנדערן?
- 4. רשימה עטלעכע פון די בענעפיץ און דיסאַדוואַנטידזשיז פון ערייז.
- 5. וואָס טוט "שיטער מענגע" אָפּשיקן צו?
- 6. ווען וואָלט איר קלייַבן אַ לינגקט רשימה איבער אַ מענגע?
- 7. וואָס דיסטינגגווישיז אַ ינדעקסט מענגע פון אַ אַססאָסיאַטיווע מענגע?
- 8. וואָס אַדוואַנטידזשיז טוט העאַפּ האָבן איבער אויסגעשטעלט ערייז?
- 9. קענען מיר דעפינירן די גרייס פון די מענגע צו זיין נעגאַטיוו?
- 10. ווי טאָן איר געפינען די פעלנדיק ינטאַדזשער אין אַ 1-100 עלעמענט מענגע?
- 11. ווי טאָן איר געפֿינען די אינדעקס פון אַן עלעמענט אין אַ מענגע?
- 12. ווי קענען איר באַקומען באַפרייַען פון אַ ספּעציפיש עלעמענט פון אַ מענגע?
- 13. ווי קענען צוויי ערייז 'יקוואַלאַטי זיין וועראַפייד?
- 14. ווען מיר דיסקוטירן ערייז, וואָס טאָן איר מיינען מיט די פראַסעס "דימענסיאָן" און "סאַבסקריפּט"?
- קאָודינג אינטערוויו פֿראגן
- 15. זוכן אַ פּאָר אין אַ מענגע וואָס האט די ספּעסיפיעד סאַכאַקל
- 16. ביינערי מענגע סאָרטינג מיט לינעאַר צייַט
- 17. געפֿינען די גרעסטע צוויי-ינט פּראָדוקט אין אַ מענגע.
- 18. ווי צו יבעררוק אַלע די מענגע ס זעראָס צו די סוף
- 19. ווי צו סאָרט אַ מענגע מיט צוויי איינסן וואָס זענען סוויטשט אין איין אָפּעראַציע.
- 20. ווי צו פאַרבינדן צוויי אויסגעשטעלט ערייז אין פּלאַץ.
- 21. ווי צו ריאָרדער אַ מענגע פון זאכן אין אָלטערנייטינג הויך און נידעריק שטעלעס?
- 22. ווי צו פאַרבייַטן יעדער עלעמענט פון אַ מענגע אָן ניצן אַ אָפּטייל אָפּעראַטאָר מיט די פּראָדוקט פון יעדער עלעמענט אין די מענגע?
- 23. געפֿינען די מאָדנע עלעמענט אין אַ מענגע אין לאָגאַריטהמיק צייט
- 24. ווי צו באַקומען די סאַבסאַקוואַנט ביגער עלעמענט פֿאַר יעדער עלעמענט אין אַ קייַלעכיק מענגע?
- 25. געפֿינען אַ מענגע ס ינווערזשאַן ציילן?
- 26. וואָס איז די רעגן וואַסער טראַפּינג פּראָבלעם?
- סאָף
קאָדירונג ינטערוויוז אַנטהאַלטן אַ סעריע פון DSA פֿראגן. איר זאָל זיין באָקע מיט ערייז אויב איר זענט גרייט פֿאַר דיין קומענדיק טעק אינטערוויו מיט FAANG אָדער אן אנדער Tier-1 טעק געשעפט.
אין רובֿ קאָודינג ינטערוויוז, עס קומט אין צווייט אָרט צו סטרינגס. אַ מענגע איז אַ גרופּינג פון פֿאַרבונדענע דאַטן עלעמענטן וואָס זענען געהאלטן אין נאָענט נאָענט צו איינער דעם אנדערן אין זכּרון.
ווי זיי זענען פארבונדן צו אַלע פּראָגראַממינג שפּראַכן, אַזאַ ווי C, C ++, Java, Python, Perl און Ruby, זיי זענען אומעטום. פאָרזעצן לייענען פֿאַר עטלעכע פּראַקטיסיז קאָודינג טשאַלאַנדזשיז און אינטערוויו פֿראגן און ענטפֿערס באזירט אויף ערייז.
פּיטהאָן וועט זיין געוויינט אין דעם פּאָסטן צו מאַכנ די קאָדירונג ישוז ווייַל עס איז פּשוט צו נוצן, באַגרייַפן און מוזן זיין באַקאַנט פֿאַר רובֿ פון אונדז.
זאל ס אָנהייבן.
1. ווי טאָן איר דעפינירן אַ Array?
- א גרופּע פון פֿאַרבונדענע דאַטן טייפּס איז אַ מענגע.
- ערייז זענען שטענדיק פאַרפעסטיקט.
- דער זעלביקער מין פון וועריאַבאַלז איז סטאָרד אין עטלעכע ערטער דורך מענגע אַבדזשעקץ.
- פּרימיטיוו טייפּס און אַבדזשעקץ באַווייַזן זענען ביידע קאַמפּאַטאַבאַל מיט עס.
2. דינאַמיש אַררייַס: וואָס זענען זיי? וואָס שטעלט זיי באַזונדער פון באַסיק אַררייַס?
די אָטאַמאַטיק סקיילינג אַז דינאַמיש ערייז (אויך ריפערד צו ווי גראָואַבאַל ערייז, רעסיזאַבלע ערייז, טשיינדזשאַבאַל ערייז אָדער ArrayLists אין Java) צושטעלן איז אַ באַטייטיק מייַלע.
איר מוזן שטענדיק וויסן ווי פילע עלעמענטן דיין מענגע וועט קראָם אין שטייַגן זינט ערייז האָבן אַ פאַרפעסטיקט גרייס. א דינאַמיש מענגע, אויף די אנדערע האַנט, וואקסט ווען איר לייגן נאָך מיטגלידער צו עס, אַזוי איר טאָן ניט דאַרפֿן צו וויסן די פּינטלעך גרייס פריער.
3. ווי אַזוי בייַטן אַ מענגע און אַ ווערטערבוך פֿון איינער דעם אַנדערן?
דאָס איז אַ פאַנדאַמענטאַל-באזירט מענגע פון אינטערוויו פראגעס וואָס זענען קעסיידער געפרעגט. די פאלגענדע זענען די הויפּט דיסטינגקשאַנז צווישן ערייז און דיקשאַנעריז:
- אַ מענגע איז אַ אָרדערד רשימה פון ענלעך זאכן. ווערטערבוך, אויף די אנדערע האַנט, האט שליסל-ווערט פּערז.
- מענגע סיזעס קענען טוישן דינאַמיקאַללי. אַזעלכע דינאַמישע געדאַנקען עקזיסטירן נישט אין ווערטערביכער.
- איידער ניצן אַ מענגע, זייַן גרייס מוזן זיין ספּעסיפיעד. ווערטערבוך סיזעס טאָן ניט דאַרפֿן צו זיין קאַסטאַמייזד.
- ניצן די Redim ויסזאָגונג אויב איר ווילט צו יקספּאַנד די גרייס פון די מענגע. אין ווערטערביכער קען מען צוגעבן אַן עלעמענט אָן אַ דעקלאַראַציע.
4. רשימה עטלעכע פון די בענעפיץ און דיסאַדוואַנטידזשיז פון ערייז.
אַדוואַנטאַגעס:
- אַררייַס קענען סאָרט אַ נומער פון עלעמענטן סיימאַלטייניאַסלי.
- אַנדערער דאַטן סטראַקטשערז, ווי סטאַקס, קיוז, לינגקט רשימות, ביימער, גראַפס, אאז"ו ו, קענען זיין ימפּלאַמענאַד אין אַ מענגע.
- אַן אינדעקס קענען ווערן גענוצט צו דערגרייכן אַן עלעמענט פון אַ מענגע.
דיסאַדוואַנטידזשיז:
- די גרייס פון אַ מענגע מוזן זיין דערקלערט אין שטייַגן. אין דעם מאָמענט פון מענגע דעקלאַראַציע, מיר קען נישט זיין אַווער פון די גרייס וואָס מיר דאַרפן.
- די סטרוקטור פון די מענגע איז סטאַטיק. עס ימפּלייז אַז מענגע גרייס איז שטענדיק פאַרפעסטיקט און אַז זכּרון אַלאַקיישאַן קענען ניט זיין געוואקסן אָדער דיקריסט.
5. וואָס טוט "שיטער מענגע" אָפּשיקן צו?
א שיטער מענגע איז אַ דאַטן מענגע וואָס האט אַ פּלאַץ פון איינסן מיט נול וואַלועס. אין קאַנטראַסט, אַ געדיכט מענגע כּולל די מערהייַט פון זייַן זאכן מיט ניט-נול וואַלועס. די ינדיסעס פון אַ שיטער מענגע, וואָס קאַנווערץ נומערן צו אַבדזשעקץ, קען אַרייַננעמען גאַפּס. קאַמפּערד מיט אַ HashMap, זיי זענען מער זכּרון-עפעקטיוו.
6. ווען וואָלט איר קלייַבן אַ לינגקט רשימה איבער אַ מענגע?
ווען ניצן לינגקט רשימות אַנשטאָט פון ערייז, באַטראַכטן:
- איר טאָן ניט דאַרפֿן קיין עלעמענטן צו האָבן טראַפ אַקסעס.
- ווען צייַטווייַליק פּרידיקטאַביליטי איז יקערדיק, איר דאַרפֿן קעסיידערדיק ינסערשאַנז און רימווואַלז פון דער רשימה.
- אין סדר צו שאַפֿן אַ בילכערקייַט ריי, איר קען דאַרפֿן צו שטעלן זאכן אין די צענטער פון דער רשימה.
- איר האָט קיין געדאַנק ווי לאַנג די רשימה וועט זיין. אויב די מענגע גרייס ריסעס, איר מוזן שייַעך-דערקלערן און דופּליקאַט זכּרון, פּונקט ווי מיט פּשוט ערייז.
7. וואָס דיסטינגגווישיז אַ ינדעקסט מענגע פון אַ אַססאָסיאַטיווע מענגע?
די ערשטיק דיסטינגקשאַנז צווישן אַססאָסיאַטיווע און ינדעקסט ערייז זענען ליסטעד אין די פאלגענדע טיש.
- א שליסל-ווערט פּאָר אין טעקסט אָדער נומעריק פֿאָרמאַט איז געניצט צו סאָרט אַ אַססאָסיאַטיווע מענגע. די שליסלען פון די ינדעקסט מענגע זענען אַלע נומעריק, און יעדער שליסל איז פארבונדן צו אַ באַזונדער ווערט.
- אין אַ אַססאָסיאַטיווע מענגע, דער שליסל קען זיין אַ שטריקל. ינדעקסט מענגע מיט ינטאַדזשער שליסלען סטאַרטינג בייַ 0.
- א צוויי-זייַל טיש מימיקס די נאַטור פון אַ אַססאָסיאַטיווע מענגע. ענלעך צו אַ איין-זייַל טיש זענען ינדעקסט ערייז.
- מאַפּס זענען אַ אַססאָסיאַטיווע מענגע טיפּ. אַן אינדעקס מענגע איז נישט אַ מאַפּע.
8. וואָס אַדוואַנטידזשיז טוט העאַפּ האָבן איבער אויסגעשטעלט ערייז?
די צייט עפעקטיווקייַט פון ניצן Heap איבער Sorted Arrays איז די הויפּט נוץ. כאָטש קופּע אַפּעריישאַנז זענען קוויקער, סאָרטינג אַ מענגע ריקווייערז אַ פּלאַץ פון צייט. א קופּע קענען אַנטדעקן דעם קלענסטער עלעמענט פיל מער געשווינד ווי אַ מענגע קענען זיין סאָרטירט.
א געגעבן זאַמלונג פון נומערן קענען זיין עריינדזשד אין איינער פון צוויי וועגן ניצן Sorted Arrays. אויף די אנדערע האַנט, פֿאַר אַ געגעבן זאַמלונג פון נומערן, עס קען זיין מער ווי איין פּאָטענציעל קופּע.
9. קענען מיר דעפינירן די גרייס פון די מענגע צו זיין נעגאַטיוו?
ניין, מיר קענען נישט דעפינירן אַ נעגאַטיוו גאַנץ נומער צו זיין די גרייס פון אַ מענגע. עס וועט נישט זיין אַ קאַמפּייל-צייט טעות אויב מיר דערקלערן. אין רונטימע, מיר וועלן, אָבער, טרעפן אַ NegativeArraySizeException.
10. ווי טאָן איר געפינען די פעלנדיק ינטאַדזשער אין אַ 1-100 עלעמענט מענגע?
די גאַנץ פון די סעריע קענען זיין קאַמפּיוטאַד דורך אַפּלייינג די פאלגענדע פֿונקציע: n (n + 1) / 2
בלויז אויב די מענגע טוט נישט האָבן קיין דופּליקאַטן אָדער פעלנדיק מער ווי איין גאַנץ נומער, די פֿונקציע וועט אַרבעטן. צי אַ מענגע האט דופּליקאַט עלעמענטן, איר קענען סאָרט די מענגע צו זען אויב עס זענען עלעמענטן וואָס זענען עקוויוואַלענט.
11. ווי טאָן איר געפֿינען די אינדעקס פון אַן עלעמענט אין אַ מענגע?
אַן עלעמענט ס אינדעקס קענען זיין דיסקאַווערד דורך אַ לינעאַר אָדער ביינערי זוכן. ביז עס לאָוקייץ די גלייַכן פון די פארלאנגט עלעמענט, אַ לינעאַר זוכן פֿונקציע לופּס איבער יעדער עלעמענט אין אַ מענגע. עס קערט די אינדעקס אַמאָל עס לאָוקייץ די וואָס ריכטן עלעמענט. דעריבער, די לינעאַר זוכן ס טעמפּעראַל קאַמפּלעקסיטי איז אָ (n). ביידע אַ סאָרטעד און אַ אַנסאָרטיד מענגע קענען נוצן לינעאַר זוכן.
ניצן אַ ביינערי זוכן, וואָס קאַנטיניולי דיוויידז די מענגע אין האַלב ביז די מידיאַן פון די מעהאַלעך גלייַכן די פארלאנגט עלעמענט און גיט די אינדעקס, איר קענען באַקומען די עלעמענט ס אינדעקס אויב די מענגע איז אויסגעשטעלט. דעריבער, די ביינערי זוכן ס טעמפּעראַל קאַמפּלעקסיטי איז אָ (לאָג ן).
12. ווי קענען איר באַקומען באַפרייַען פון אַ ספּעציפיש עלעמענט פון אַ מענגע?
זינט איר קענען נישט פשוט ויסמעקן עלעמענטן פון דער אָריגינעל מענגע זינט זיי זענען פאַרפעסטיקט שטעלט מיט אַ דיפיינד גרייס, דער ינטערוויוזער זוכט פֿאַר איר צו פֿאָרשלאָגן אַ אַנדערש צוגאַנג און האַנדלען מיט די פּראָבלעם וואָס די קשיא רייזאַז. דער בעסטער לויף פון קאַמף איז צו מאַכן אַ נייַע מענגע אין סדר צו ויסמעקן אַן עלעמענט. איר קענט דופּליקאַט די עלעמענטן פון דער ערשטער מענגע אין דעם מענגע און בלויז אַרייַננעמען די עלעמענט איר ווילן צו ויסמעקן.
אן אנדער סטראַטעגיע ינוואַלווז דערגייונג די ציל עלעמענט אין די מענגע און דאַן ריווערסינג די סדר פון אַלע די זאכן וואָס זענען צו די רעכט פון די ציל עלעמענט.
13. ווי קענען צוויי ערייז 'יקוואַלאַטי זיין וועראַפייד?
איר מוזן ערשטער באַשטעטיקן די לענג פון די צוויי צוגעשטעלט ערייז. די וואָס ריכטן זאכן פון ביידע ערייז זענען קאַמפּערד ווען זייער לענג איז גלייַך. די צוויי אַרייז וועט זיין גערעכנט ווי גלייַך. אויב יעדער פּאָר פון קאַמפּאָונאַנץ אין יעדער קאָרעספּאָנדענץ איז גלייַך. דעם צוגאַנג איז נישט אַדווייזד צו קאָנטראָלירן די יקוואַלאַטי פון צוויי ערייז אויב די ערייז זענען גרויס אין גרייס ווייַל עס וועט נעמען אַ פּלאַץ פון צייט. איר קענט אויך נוצן די Equals () אופֿן אַרייַנגערעכנט אין די Arrays קלאַס, אָבער, אויב דער ינטערוויוזער בעט איר צו פאַרגלייַכן צוויי ערייז אָן ניצן די געבויט-אין מעטהאָדס, דעם וועג וועט זיין נוציק.
14. ווען מיר דיסקוטירן ערייז, וואָס טאָן איר מיינען מיט די פראַסעס "דימענסיאָן" און "סאַבסקריפּט"?
די "דימענסיאָן" פון אַ מענגע איז די נומער פון ינדיסיז, אָדער סאַבסקריפּץ, פארלאנגט צו ידענטיפיצירן יעדער יחיד מיטגליד. סאַבסקריפּץ און דימענשאַנז קען זיין ומקלאָר. א ויסמעסטונג איז אַ באַשרייַבונג פון די קייט פון דערלויבט שליסלען, כאָטש אַ אַבאָנעמענט איז אַ נומער. עס איז בלויז איין אַבאָנעמענט פארלאנגט פֿאַר יעדער מענגע ויסמעסטונג.
פֿאַר בייַשפּיל, די מענגע arr [10] [5] האט צוויי דימענשאַנז. סיזעס 10 אויף איין און 5 אויף די אנדערע. צו אַדרעס זייַן קאַמפּאָונאַנץ, איר דאַרפן צוויי סאַבסקריפּץ. ביידע זענען צווישן 0 און 4; איינער צווישן 0 און 9, ינקלוסיוו.
קאָודינג אינטערוויו פֿראגן
15. זוכן אַ פּאָר אין אַ מענגע וואָס האט די ספּעסיפיעד סאַכאַקל
פֿאַר בייַשפּיל,
ינפּוט:
- נומערס = [8, 7, 2, 5, 3, 1]
- ציל = 10
אָוטפּוט:
- פּאָר געפֿונען (8, 2)
- Or
- פּאָר געפֿונען (7, 3)
ינפּוט:
- נומערס = [5, 2, 6, 8, 1, 9]
- ציל = 12
אָוטפּוט:
- פּאָר ניט געפֿונען
16. ביינערי מענגע סאָרטינג מיט לינעאַר צייַט
סאָרט אַ ביינערי מענגע אין לינעאַר צייט און אין אַ פאַרפעסטיקט געגנט. דער רעזולטאַט זאָל ווייַזן אַלע זעראָס ערשטער, דעמאָלט אַלע אָנעס.
פֿאַר בייַשפּיל,
- אַרייַנשרייַב: {1, 0, 1, 0, 1, 0, 0, 1}
- רעזולטאַט: { 0, 0, 0, 0, 1, 1, 1, 1}
א סטרייטפאָרווערד צוגאַנג וואָלט זיין צו רעכענען די גאַנץ נומער פון 0 ס פון די מענגע, זאָגן k, און דעמאָלט פּלאָמבירן די ערשטער ק ינדיסעס אין די מענגע מיט 0 ס און די רוען ינדיסעס מיט 1. ווי אַן אנדער ברירה, מיר קענען רעכענען ווי פילע 1 ס זענען גאַנץ אין די מענגע. array k, פּלאָמבירן די לעצטע ק ינדיסיז אין די מענגע מיט 1, און לאָזן די רעשט פון ינדיסיז אָנגעפילט מיט 0.
דער געגעבן צוגאַנג האט אַן אָ (ען) צייט קאַמפּלעקסיטי און ניצט קיין נאָך סטאָרידזש, ווו n איז די גרייס פון דעם אַרייַנשרייַב.
17. געפֿינען די גרעסטע צוויי-ינט פּראָדוקט אין אַ מענגע.
געפֿינען די גרעסטע פּראָדוקט פון צוויי נומערן אין אַ גאַנץ מענגע.
טראַכטן וועגן די מענגע 10 3 5 6 2 ווי אַ בייַשפּיל. די (-10, -3) אָדער (5, 6) פּאָר איז די העכסטן פּראָדוקט.
צו טראַכטן וועגן יעדער עלעמענט קאָמבינאַציע און רעכענען אויס זייער פּראָדוקט איז אַ נאַריש צוגאַנג. אויב די פּראָדוקט פון די קראַנט פּאָר איז ביגער ווי די מאַקסימום פּראָדוקט באקומען ביז איצט, דערהייַנטיקן די מאַקסימום פּראָדוקט. דרוק די קאַמפּאָונאַנץ פון די לעצט פּראָדוקט לעצטע.
די אויבן לייזונג, ווו n איז די סומע פון די אַרייַנשרייַב, האט אַ צייט קאַמפּלעקסיטי פון O(n2) און נעמט נישט מער פּלאַץ.
18. ווי צו יבעררוק אַלע די מענגע ס זעראָס צו די סוף
מאַך אַלע די זעראָס אין אַ גאַנץ מענגע צו די סוף. דער ענטפער זאָל ויסמיידן ניצן קעסיידערדיק פּלאַץ און ופהיטן די קאָרעוו סדר פון די קאַמפּאָונאַנץ פון די מענגע.
איינגאבע: {1,2,3,0,8,0,4,7}
רעזולטאַט וועט זיין {1,2,3,8,4,7,0,0}
שטעלן דעם עלעמענט אין די פאלגענדע בנימצא שטעלע אין די מענגע אויב די קראַנט עלעמענט איז נישט נול. פּלאָמבירן אַלע רוען ינדיסיז מיט 0 אַמאָל אַלע די ייטאַמז פון די מענגע זענען פּראַסעסט.
די פריערדיקע לייזונג האט אַן אָ (ען) צייט קאַמפּלעקסיטי, ווו n איז די גרייס פון דעם אַרייַנשרייַב.
19. ווי צו סאָרט אַ מענגע מיט צוויי איינסן וואָס זענען סוויטשט אין איין אָפּעראַציע.
סאָרט אַ מענגע אין די לינעאַר צייט געגעבן צוויי סוואַפּט זאכן און אַ מענגע מיט אַלע זייַן עלעמענטן עריינדזשד אין אַסענדינג סדר. פאַרהיטן אַז די מענגע כּולל קיין דופּליקאַטן.
אַרייַנשרייַב:= [1,9,3,4,7,2] אָדער [9,3,7,2,1,4] אָדער [2,4,1,7,3,9]
רעזולטאַט: = [1,2,3,4,7,9]
אָנהייב מיט די רגע עלעמענט אין די מענגע, די אָביעקטיוו איז צו פאַרגלייַכן יעדער עלעמענט צו זיין פאָרויסגייער. די שטעלע פון די פּאָלעמיק איז סטאָרד דורך גענומען צוויי פּוינטערז, X, און י.
דערהייַנטיקן X צו דער אינדעקס פון די פריערדיקע עלעמענט און י צו דער אינדעקס פון די קראַנט עלעמענט אויב די ערשטע איז גרעסער ווי די יענער. דערהייַנטיקן y צו דער אינדעקס פון דעם קראַנט עלעמענט אויב עס טורנס אויס אַז די פריערדיקע עלעמענט איז גרעסער ווי די קראַנט עלעמענט.
צום סוף, באַשטימען די עלעמענטן ביי ינדעקסיז X און y אַמאָל מיר האָבן פאַרטיק פּראַסעסינג יעדער שכייניש פּאָר פון עלעמענטן.
רעכט צו דעם פאַקט אַז די אַפאָרמענשאַנד אופֿן בלויז פּערפאָרמז אַ איין יבערקוקן פון די אַרייַנשרייַב מענגע פון גרייס n, זייַן צייט קאַמפּלעקסיטי איז O (n). קיין נאָך פּלאַץ איז נייטיק פֿאַר די לייזונג.
20. ווי צו פאַרבינדן צוויי אויסגעשטעלט ערייז אין פּלאַץ.
צונויפגיסן די ייטאַמז פון ערייז X[] און Y[] - צוויי סאָרטירטע ערייז פון גרייס m און n יעדער - דורך ריטיינינג די סאָרטירט סדר, דאָס איז, דורך פּלאָמבירן X[] מיט דער ערשטער m קלענסטער עלעמענטן און פּלאָמבירן Y[] מיט די רוען עלעמענטן.
אויב אַן עלעמענט אין די מענגע X[] איז שוין אין די רעכט שטעלע (ד"ה, דער איינער וואָס איז דער קלענסטער צווישן די רוען עלעמענטן), דיסריגאַרד עס; אַנדערש, פאַרבייַטן עס מיט די קלענסטער עלעמענט, וואָס אויך כאַפּאַנז צו זיין דער ערשטער מיטגליד פון Y[]. צו האַלטן די סאָרטעד סדר נאָך סוואַפּינג, אַריבערפירן די עלעמענט (איצט ביי Y[0]) צו זיין געהעריק אָרט אין Y[].
די גרייס פון דער ערשטער מענגע איז m און די רגע מענגע איז n, און די צייט קאַמפּלעקסיטי איז O(mn).
21. ווי צו ריאָרדער אַ מענגע פון זאכן אין אָלטערנייטינג הויך און נידעריק שטעלעס?
ריעריינדזש אַ ינטאַדזשער מענגע אַזוי אַז יעדער סאַבסאַקוואַנט מיטגליד איז גרעסער ווי די פריערדיקע און פאלגענדע עלעמענטן. יבערנעמען אַז די מענגע כּולל קיין דופּליקאַט עלעמענטן.
סאָרטינג די מענגע אָדער נוצן נאָך פּלאַץ איז ניט נייטיק פֿאַר אַ עפעקטיוו צוגאַנג. דער פּלאַן איז, צו אָנהייבן מיט, די רגע מיטגליד פון דער מענגע און גיין אַרויף מיט צוויי פֿאַר יעדער שלייף יטעראַטיאָן.
ויסבייַטן די קאַמפּאָונאַנץ אויב די לעצטע עלעמענט יקסידז דער ערשטער. אין אַ ענלעך וועג, באַשטימען ביידע זאכן אויב די פאלגענדע עלעמענט איז ביגער ווי די קראַנט עלעמענט. מיר וועלן באַקומען די געבעטן מענגע וואָס קאַמפּלייז מיט די ספּעסיפיעד ריסטריקשאַנז אין די מסקנא פון די שלייף.
22. ווי צו פאַרבייַטן יעדער עלעמענט פון אַ מענגע אָן ניצן אַ אָפּטייל אָפּעראַטאָר מיט די פּראָדוקט פון יעדער עלעמענט אין די מענגע?
אָן ניצן די אָפּטייל אָפּעראַטאָר, פאַרבייַטן יעדער עלעמענט אין אַ ינטאַדזשער מענגע מיט די פּראָדוקט פון אַלע אנדערע עלעמענטן.
אין לינעאַר צייט און קעסיידערדיק פּלאַץ, מיר קענען נוצן רעקורסיאָן צו אַדרעס דעם אַרויסגעבן. רעקורסיוועלי קאַלקיאַלייטינג די פּראָדוקטן פון יעדער עלעמענט אין די רעכט סובאַררייַ און פאָרן די לינקס סובאַררייַ פּראָדוקט ווי פֿונקציע פּאַראַמעטערס איז דער געדאַנק.
די צייט קאַמפּלעקסיטי איז O (n).
23. געפֿינען די מאָדנע עלעמענט אין אַ מענגע אין לאָגאַריטהמיק צייט
געגעבן אַ ינטאַדזשער מענגע אין וואָס אַלע אָבער איין מיטגליד האָבן אפילו נומערן פון געשעענישן, די פּראָבלעם איז צו באַשליסן ווי פילע מאָל דעם איין עלעמענט אויס. געפֿינען די מאָדנע געשעעניש עלעמענט אין לאָגאַריטהמיק צייט און קעסיידערדיק פּלאַץ אויב די זעלבע עלעמענטן פאַלן אין פּערז אין די מענגע און עס קענען קיינמאָל זיין מער ווי צוויי ינסטאַנסיז פון אַ געגעבן עלעמענט אין אַ רודערן.
די XOR אָפּעראַציע ינייבאַלז אונדז צו סאָלווע דעם אַרויסגעבן אין לינעאַר צייט. דער ציל איז צו XOR יעדער עלעמענט אין די מענגע. בלויז די מאָדנע געשעעניש עלעמענטן בלייַבן נאָך די אפילו געשעעניש עלעמענטן באָטל מאַכן יעדער אנדערער.
דעם פּראָבלעם קענען אפילו זיין ריזאַלווד אין אָ (לאָג (ען)) צייט.
24. ווי צו באַקומען די סאַבסאַקוואַנט ביגער עלעמענט פֿאַר יעדער עלעמענט אין אַ קייַלעכיק מענגע?
דער ווייַטער ביגער עלעמענט פֿאַר יעדער עלעמענט אין אַ קייַלעכיק ינטאַדזשער מענגע זאָל זיין ליגן. דער ערשטער גרעסערע ינטאַדזשער נאָך אַן עלעמענט X אין די מענגע איז די סאַבסאַקוואַנט גרעסערע עלעמענט פון דעם עלעמענט.
פון רעכט צו לינקס, מיר קענען אַרבעטן אויף די מענגע זאכן. דער ציל איז צו שלייף פֿאַר יעדער עלעמענט X ביז אָדער דער אָנלייגן איז ליידיק אָדער מיר האָבן אַ העכער עלעמענט אויף שפּיץ פון עס. שטעלן די ווייַטער ביגער עלעמענט פון X צו דערשייַנען אויף שפּיץ פון די אָנלייגן ווען עס איז.
25. געפֿינען אַ מענגע ס ינווערזשאַן ציילן?
געפֿינען די גאַנץ נומער פון ינווערזשאַנז פון אַ מענגע. א פּאָר I j) איז ריפערד צו זיין אַן ינווערזשאַן פון אַ מענגע א אויב I j) און (A[i] > A[j]). מיר מוזן ציילן יעדער פּאָר פון די אין די מענגע.
קאַונטינג אַלע מענגע מיטגלידער וואָס זענען ווייניקערע ווי עס צו זיין רעכט און אַדינג דער רעזולטאַט צו דער רעזולטאַט איז אַ סטרייטפאָרווערד צוגאַנג.
די לייזונג האט אַ O (n2) קאַמפּלעקסיטי, ווו n איז די גרייס פון דעם אַרייַנשרייַב.
26. וואָס איז די רעגן וואַסער טראַפּינג פּראָבלעם?
געפֿינען די מערסט וואַסער וואָס קענען זיין טראַפּט אין אַ געגעבן גאַנג פון באַרס מיט אַ ברייט פון איין אַפּאַראַט יעדער איז באקאנט ווי די "טראַפּינג רעגן" אַרויסגעבן.
דער ציל איז צו באַשטימען דעם העכסטן באַר וואָס קען זיין געשטעלט צו די לינקס און רעכט פון יעדער באַר. די מינימום פון די לידינג באַרס צו די לינקס און רעכט, ווייניקער די הייך פון די קראַנט באַר, איז די קוואַנטיטי פון וואַסער וואָס איז סטאָרד אויף שפּיץ פון יעדער באַר.
סאָף
קאַמפּערד מיט אנדערע דאַטן סטרוקטור טעמעס, ערייז זענען סימפּלער. אין סדר צו אַססעסס מענגע אינטערוויו פראגעס, איר דאַרפֿן צו האָבן אַ פונדאַמענטאַל פארשטאנד פון ערייז.
איר זאָל ברייטלי אָפּשאַצן די יסודות פון ערייז, אַרייַנגערעכנט מענגע אַפּעריישאַנז (פון דערקלערן / קריייטינג אַ מענגע צו אַקסעסינג / מאָדיפיצירן מענגע ייטאַמז), ווי געזונט ווי פּראָגראַממינג קאַנסעפּס ווי לופּס, רעקורסיאָן און יקערדיק אָפּערייטערז אין סדר צו הצלחה ענטפֿערן מענגע אינטערוויו פֿראגן. דערקענען די אַרויסגעבן גאָר.
איר זאָל זוכן קלעראַפאַקיישאַן אויב איר האָבן קיין פֿראגן. טראַכטן וועגן דיטיילד די אַרויסגעבן אין מער מאַנידזשאַבאַל טיילן. מאַכן זיכער איר האָבן די אַלגערידאַם אין זינען איידער איר אָנהייבן פּראָגראַממינג; שרייַבן עס אַראָפּ אָדער וויזשוואַלייז עס אין אַ פלאָווטשאַרט. דעמאָלט אָנהייבן שרייבן קאָד.
לאָזן אַ ענטפֿערן