[מוזיק פּלייינג] אַנדי פּענג: באַגריסונג צו וואָך 6 פון אָפּטיילונג. מיר דיוויייטיד פון אונדזער נאָרמאַל אָפּטיילונג צייַט פון דינסטאג נאָכמיטאָג צו דעם שיינע זונטיק מאָרגן. דאנק איר פֿאַר אַלעמען אַז זיך איינגעשריבן מיר הייַנט, אָבער עמעס, אַ קייַלעכיק פון אַפּלאָדיסמענטן. אַז ס אַ שיין גרויס מי. איך כּמעט האט נישט אַפֿילו מאַכן עס זיך אין צייַט, אָבער עס איז גוט. אַזוי איך וויסן אַז אַלע פון ​​איר האָבן נאָר געמאכט עס צו די ויספרעג. ערשטער פון אַלע, באַגריסן צו די Flip זייַט פון אַז. צווייטנס, מיר וועט רעדן וועגן אים. מיר וועט רעדן וועגן די ויספרעג. מיר וועט רעדן וועגן ווי איר ניטאָ טאן אין דעם קלאַס. איר וועט זיין פייַן. איך האָבן דיין קוויזיז פֿאַר איר אין די סוף פון דאָ, אַזוי אויב איר גייז ווילן צו נעמען אַ קוק אין עס, טאָוטאַלי פייַן. אַזוי געשווינד איידער מיר נעמען, די אַגענדאַ פֿאַר הייַנט איז ווי גייט. ווי איר קענען זען, מיר ניטאָ בייסיקלי גיך פירינג דורך אַ גאַנץ בינטל פון דאַטן סטראַקטשערז טאַקע, טאַקע, טאַקע געשווינד. אַזוי ווי אַזאַ, עס וועט ניט זיין יבער ינטעראַקטיוו הייַנט. עס וועט נאָר זיין מיר מין פון שאַוטינג זאכן וואָס איר, און אויב איך צעמישן איר, אויב איך בין געגאנגען צו שנעל, לאָזן מיר וויסן. זיי ניטאָ נאָר פאַרשידן דאַטן סטראַקטשערז, און ווי טייל פון דיין פּסעט פֿאַר דעם אַפּקאַמינג וואָך, איר וועט ווערן געבעטן צו ינסטרומענט איינער פון זיי, טאָמער צוויי פון טהעמ-- צוויי פון זיי אין דיין פּסעט. גוט, אַזוי איך בין נאָר געגאנגען צו אָנהייבן מיט עטלעכע אַננאָונסעמענץ. מיר וועט גיין איבער סטאַקס און קיוז מער אין טיף ווי וואָס מיר האבן פֿאַר די ויספרעג. מיר וועט גיין איבער לינגקט רשימה ווידער, אַמאָל ווידער, מער אין טיפקייַט ווי וואָס מיר האט איידער די ויספרעג. און דעמאָלט מיר וועט רעדן וועגן האַש טישן, ביימער און טרייז, וואָס זענען אַלע שיין נייטיק פֿאַר דיין פּסעט. און דעמאָלט מיר וועט גיין איבער עטלעכע נוציק טרינקגעלט פֿאַר פּסעט5. גוט, אַזוי ויספרעג 0. די דורכשניטלעך איז געווען אַ 58%. עס איז געווען זייער נידעריק, און אַזוי איר גייז אַלע האט זייער, זייער געזונט אין לויט מיט וואָס. שיין פיל, הערשן פון גראָבער פינגער איז אויב איר ניטאָ ין אַ נאָרמאַל דיווייישאַן פון די מיינען ספּעציעל זינט מיר ניטאָ אין אַ ווייניקער קאָמפי אָפּטיילונג, איר ניטאָ טאָוטאַלי פייַן. איר ניטאָ אויף שפּור. לעבן איז גוט. איך וויסן עס ס סקערי צו טראַכטן אַז איך גאַט ווי אַ 40% אויף דעם ויספרעג. איך בין געגאנגען צו פאַרלאָזן דעם סאָרט. איך צוזאָג איר, איר ניטאָ ניט געגאנגען צו פאַרלאָזן די סאָרט. איר 'רע טאָוטאַלי פייַן. פֿאַר יענע פון ​​איר וואס גאַט איבער די מיינען, ימפּרעסיוו, ימפּרעסיוו, ווי, עמעס גוט געטאן. איך האב זיי מיט מיר. פילן Free צו קומען באַקומען זיי אין די סוף פון אָפּטיילונג. לאָזן מיר וויסן אויב איר האָבן קיין ישוז, שאלות מיט זיי. אויב מיר לייגן אַרויף דיין כעזשבן אומרעכט, לאָזן אונדז וויסן. גוט, אַזוי פּסעט5, דעם איז אַ טאַקע טשודנע וואָך פֿאַר יייל אין דעם זינען אַז אונדזער פּסעט איז רעכט מיטוואך בייַ מיטאָגצייַט כולל די שפּעט טאָג, אַזוי עס ס אַקטשאַוואַלי טיערעטיקאַלי רעכט דינסטאג בייַ מיטאָגצייַט. מיסטאָמע קיין איינער פאַרטיק ביי דינסטאג בייַ מיטאָגצייַט. אַז ס טאָוטאַלי פייַן. מיר ניטאָ געגאנגען צו האָבן אָפיס שעה הייַנט בייַ נאַכט ווי גוט ווי מאנטאג נאַכט. און אַלע פון ​​די סעקשאַנז דעם וואָך וועט אַקטשאַוואַלי זיין אויסגעדרייט אין וואַרשטאַטן, אַזוי פילן Free צו קנאַל אין קיין אָפּטיילונג איר ווילן, און זיי וועט זיין מין פון מיני-פּסעט וואַרשטאַטן פֿאַר הילף אויף אַז. אַזוי ווי אַזאַ, דאָס איז די בלויז אָפּטיילונג ווו מיר ניטאָ לערנען מאַטעריאַל. כל די אנדערע סעקשאַנז וועט זיין פאָקוסינג אויסשליסלעך אויף הילף פֿאַר די פּסעט. יאָ? וילעם: וואו זענען אָפיס שעה? אַנדי פּענג: אַמט שעה טאָניגהט-- טאַקע, גוט קשיא. איך טראַכטן אָפיס שעה הייַנט בייַ נאַכט זענען אין טיל אָדער קאמאנס. אויב איר טשעק אָנליין קס50 און איר גיין צו אָפיס שעה, עס זאָל זיין אַ פּלאַן אַז דערציילט איר ווו אַלע פון ​​זיי זענען. איך וויסן אָדער הייַנט בייַ נאַכט אָדער מאָרגן איז טיל, און איך טראַכטן מיר זאלן האָבן Commons פֿאַר די אנדערע נאַכט. איך בין נישט זיכער. גוט קשיא. קוק אויף קס50. קיל, קיין שאלות וועגן די פּלאַן פֿאַר די ווייַטער ווי דריי טעג? איך צוזאָג איר גייז ווי דוד געזאגט, דעם איז דער שפּיץ פון די בערגל. איר גייז זענען כּמעט דאָרט. נאָר דרייַ מער טעג. באַקומען עס, און דעמאָלט מיר וועט אַלע קומען אַראָפּ. מיר וועט האָבן אַ פייַן קס-פּאָטער ברעכן. מיר וועט קומען צוריק. מיר וועט ונטערטוקנ זיך אין וועב פּראָגראַממינג און אַנטוויקלונג, זאכן וואָס זענען זייער שפּאַס קאַמפּערד צו עטלעכע פון ​​די אנדערע פּסעץ. און עס וועט זייַן ציטער, און מיר וועט האָבן גורל פון שפּאַס. מיר וועט האָבן מער זיסוואַרג. אנטשולדיגט פֿאַר זיסוואַרג. איך Forgot זיסוואַרג. עס איז געווען אַ פּראָסט מאָרגן. אַזוי איר גייז זענען כּמעט דאָרט, און איך בין טאַקע שטאָלץ פון איר גייז. גוט, אַזוי סטאַקס. וואס ליב געהאט די קשיא וועגן דזשאַק און זיין קליידער אויף די ויספרעג? קיין איינער? גוט, אַז ס פייַן. אַזוי יסענשאַלי ווי איר קענען בילד דזשאַק, דעם באָכער דאָ, ליב צו נעמען די קליידער אויס פון די שפּיץ פון דעם אָנלייגן, און ער לייגט עס צוריק אַנטו די אָנלייגן נאָך ער ס געטאן. אַזוי אין דעם וועג, ער קיינמאָל מיינט צו זיין געטינג צו די דנאָ פון די אָנלייגן אין זיינע קליידער. אזוי דעם טיפּ פון באשרייבט די גרונט דאַטן סטרוקטור פון ווי אַ אָנלייגן איז ימפּלאַמענאַד. עססענטיאַללי, טראַכטן פון אַ אָנלייגן ווי קיין אָנלייגן פון אַבדזשעקס ווו איר שטעלן זאכן אַנטו די שפּיץ, און דעמאָלט איר קנאַל זיי אויס פון דעם שפּיץ. אַזוי ליפאָ איז די אַקראַנים מיר ווי צו וסע-- לעצטע אין, ערשטער אָוט. און אַזוי לעצט אין צו די שפּיץ פון די אָנלייגן איז דער ערשטער איינער וואָס קומט אויס. און אַזוי די צוויי ווערטער מיר ווי צו מיטאַרבעטער מיט וואָס זענען גערופֿן שטופּן און קנאַל. ווען איר שטופּן עפּעס אַנטו די אָנלייגן, און איר קנאַל עס צוריק אַרויף. און אַזוי איך טרעפן דעם איז מין פון אַ אַבסטראַקט באַגריף פֿאַר די פון איר וואס ווילן צו זען ווי אַ פאַקטיש ימפּלאַמענטיישאַן פון דעם אין דער עמעס וועלט. ווי פילע פון ​​איר האָבן געשריבן אַ עסיי אפֿשר ווי אַ שעה איידער עס איז געווען רעכט, און איר אַקסאַדענאַלי אויסגעמעקט אַ ריזיק פּייַדע פון ​​עס, ווי אַקסאַדענאַלי? און דעמאָלט וואָס קאָנטראָלירן טאָן מיר נוצן צו לייגן עס צוריק? קאָנטראָל-ז, יאָ? קאָנטראָל-ז, אַזוי די סומע פון ​​מאל אַז קאָנטראָל-ז האט געראטעוועט מיין לעבן, האט געראטעוועט מיין טאָכעס, יעדער מאָל אַז ס ימפּלאַמענטאַד דורך אַ אָנלייגן. עססענטיאַללי אַלע די אינפֿאָרמאַציע אַז ס אויף דיין וואָרט דאָקומענט, עס געץ פּושט און פּאַפּט אין וועט. און אַזוי יסענשאַלי ווען איר ויסמעקן עפּעס, איר קנאַל עס צוריק אַרויף. און דעריבער אויב איר דאַרפֿן עס צוריק אויף, איר שטופּן עס, וואָס איז וואָס קאָנטראָל-C טוט. און אַזוי עמעס וועלט פונקציאָנירן פון ווי פּשוט דאַטן סטרוקטור קענען העלפן מיט דיין וואָכעדיק לעבן. אַזוי אַ סטרוקט איז די וועג וואָס מיר אַקטשאַוואַלי מאַכן אַ אָנלייגן. מיר טיפּ דעפינירן סטרוקט, און דעמאָלט מיר רופן עס אָנלייגן בייַ די דנאָ. און ין דעם אָנלייגן, מיר האָבן צוויי פּאַראַמעטערס אַז מיר קענען יסענשאַלי מאַניפּולירן, אַזוי מיר האָבן טשאַר שטערן סטרינגס קאַפּאַציטעט. אַלע אַז עס איז טאן איז קריייטינג אַ מענגע אַז מיר קענען קראָם וועלכער איר ווילן וואָס מיר קענען באַשטימען זייַן קאַפּאַציטעט. קאַפּאַציטעט איז נאָר די מאקס סומע פון זאכן מיר קענען לייגן אין דעם מענגע. ינט גרייס איז די טאָמבאַנק אַז האלט שפּור פון ווי פילע זאכן זענען איצט אין די אָנלייגן. אַזוי דעמאָלט מיר קענען האַלטן שפּור פון, א, ביידע ווי גרויס די פאַקטיש אָנלייגן איז, און, ב, ווי פיל פון וואָס אָנלייגן מיר אָנגעפילט ווייַל מיר טאָן ניט וועלן צו לויפן איבער וואָס אונדזער קאַפּאַציטעט איז. אַזוי למשל, דאָס שיינע קשיא איז אויף דיין ויספרעג. עססענטיאַללי ווי טאָן מיר שטופּן אַנטו די שפּיץ פון אַ אָנלייגן. שיין פּשוט. אויב איר קוק אין עס, מיר וועט גיין דורך דעם. אויב [ינאָדאַבאַל] סיזע-- געדענקען, ווען איר ווילן צו צוטריט קיין פּאַראַמעטער ין אַ סטרוקט, איר טאָן דעם נאָמען פֿון סטרוקט.פּאַראַמעטער. אין דעם פאַל, ס איז די נאָמען פון אונדזער אָנלייגן. מיר ווילן צו צוטריט די גרייס פון עס, אַזוי מיר טאָן ס.סיזע. אַזוי ווי לאַנג ווי די נומער איז ניט גלייַך צו קאַפּאַציטעט אָדער ווי לאַנג ווי עס ס ווייניקער ווי קאַפּאַציטעט, אָדער וואָלט אַרבעט דאָ. איר ווילן צו צוטריט די ין פון דיין אָנלייגן, אַזוי ס.סטרינגס, און איר ניטאָ געגאנגען צו שטעלן אַז נייַ נומער וואָס איר ווילן צו טאָן אין עס. זאל ס נאָר זאָגן מיר וועלן ווילן צו אַרייַנלייגן ינט N אַנטו דעם אָנלייגן, מיר קען טאָן ס.סטרינגס, בראַקאַץ, ס.סיזע יקוואַלז ן. ווייַל גרייס איז ווו מיר איצט זענען אין די אָנלייגן אויב מיר רע געגאנגען צו שטופּן עס אויף, מיר נאָר צוטריט וואוהין די נומער איז, די איצטיקן פֿולקייט פון דעם אָנלייגן, און מיר שטופּן די ינט N אַנטו עס. און דעמאָלט מיר ווילן צו מאַכן זיכער אַז מיר ניטאָ אויך ינקרעמענטינג גרייס פון די ן, אַזוי מיר קענען האַלטן שפּור פון מיר ווע צוגעגעבן אַן עקסטרע זאַך צו די אָנלייגן. איצט מיר האָבן אַ גרעסערע נומער. טוט דעם דאָ מאַכן חוש צו יעדער יינער, ווי לאַדזשיקלי עס אַרבעט? עס איז געווען מין פון שנעל. וילעם: קען איר גיין איבער די ס.סטרינגסס.סטרינגס [ס.סיזע] ווידער? אַנדי פּענג: שור, אַזוי וואָס טוט ס.סיזע איצט געבן אונדז? וילעם: עס ס די קראַנט גרייס. אַנדי פּענג: עקסאַקטלי, אַזוי די איצטיקן אינדעקס אַז אונדזער גרייס איז ביי, און אַזוי מיר וועלן צו שטעלן די נייַ ינטעגער אַז מיר ווילן צו טאָן אין ס.סיזע. טוט וואָס מאַכן זינען? ווייַל ס.סטרינגס, אַלע וואָס איז איז די נאָמען פון די מענגע. אַלע עס איז איז אַקסעסינג די מענגע ין אונדזער סטרוקט, און אַזוי אויב מיר ווילן צו אָרט N אין אַז אינדעקס, מיר קענען נאָר צוטריט עס ניצן בראַקאַץ ס.סיזע. קיל. אַלע רעכט, קנאַל, איך פּסעודאָקאָדע עס אויס פֿאַר איר גויס, אָבער ענלעך באַגריף. טוט וואָס מאַכן זינען? אויב די נומער איז גרעסער ווי נול, דעמאָלט איר וויסן אַז איר ווילן צו נעמען עפּעס אויס ווייַל אויב די נומער איז ניט גרעסער ווי נול, דעמאָלט איר האָבן גאָרנישט אין די אָנלייגן. אַזוי איר נאָר ווילן צו ויספירן דעם קאָד, עס קענען נאָר קנאַל אויב עס איז עפּעס צו קנאַל. אַזוי אויב דער נומער איז גרעסער ווי 0, מיר מינוס די גרייס. מיר דעקרעמענט די גרייס און דעמאָלט צוריקקומען וועלכער איז ין פון עס ווייַל דורך פּאַפּינג, מיר ווילן צו צוטריט וועלכער איז סטאָרד אין דער אינדעקס פון די שפּיץ פון די אָנלייגן. אלץ מאַכן זינען? אויב איך געמאכט איר גייז שרייַבן דעם אויס, וואָלט איר גייז קענען צו שרייַבן עס אויס? גוט, איר גייז קענען שפּילן אַרום מיט עס. ניט קיין וועריז אויב איר טאָן ניט באַקומען עס. מיר טאָן ניט האָבן צייַט צו קאָד עס אויס הייַנט ווייַל מיר ווע גאַט אַ פּלאַץ פון די סטראַקטשערז צו גיין דורך, אָבער יסענשאַלי פּסעודאָקאָדע, זייער, זייער ענלעך צו שטופּן. נאָר נאָכפאָלגן צוזאמען די לאָגיק. מאַכן זיכער איר ניטאָ אַקסעסינג אַלע די פֿעיִקייטן פון דיין סטרוקט ריכטיק. יאָ? וילעם: וועט די סליידז און דעם גאנצע זאַך זיין אַרויף הייַנט-יש? אַנדי פּענג: שטענדיק, יאָ. איך בין געגאנגען צו פּרובירן צו שטעלן דעם אַרויף ווי אַ שעה נאָך. איך וועט בליצפּאָסט דוד, דוד וועט פּרובירן צו לייגן עס אַרויף ווי אַ שעה נאָך דעם. גוט, אַזוי דעמאָלט מיר מאַך אין דעם אנדערע שיינע דאַטן סטרוקטור גערופֿן אַ ריי. ווי איר גייז קענען זען דאָ, אַ ריי, פֿאַר די בריטיש צווישן אונדז, אַלע עס איז אַ שורה. אַזוי פאַרקערט צו וואָס איר טראַכטן אַ אָנלייגן איז, אַ ריי איז פּונקט וואָס לאַדזשיקלי איר טראַכטן עס איז. עס ס געהאלטן דורך די כּללים פון פיפאָ, וואָס איז ערשטער אין, ערשטער אָוט. אויב איר ניטאָ דער ערשטער איינער אין די שורה, איר ניטאָ דער ערשטער איינער אַז קומט אויס פון די שורה. אַזוי וואָס מיר ווי צו רופן דעם איז דעקוועועינג און ענקוועועינג. אויב מיר ווילן צו לייגן עפּעס צו אונדזער ריי, מיר ענקוועוע. אויב מיר ווילן צו דעקוועוע, אָדער נעמען עפּעס אַוועק, מיר דעקוועוע. אַזוי זעלביקער געפיל אַז מיר ניטאָ מין פון קריייטינג פאַרפעסטיקט-גרייס עלעמענטן וואָס מיר קענען קראָם זיכער זאכן, אָבער מיר קענען אויך טוישן ווו מיר ניטאָ פּלייסינג פּאַראַמעטערס ין פון זיי באזירט אויף וואָס טיפּ פון פונקטיאָנאַליטי מיר ווילן. אַזוי סטאַקס, מיר געוואלט די לעצטע איינער, ן צו זיין דער ערשטער איינער אויס. ריי איז מיר ווילן דער ערשטער זאַך אין צו זיין דער ערשטער זאַך אויס. אזוי די סטרוקט טיפּ דעפינירן, ווי איר קענען זען, עס ס אַ קליין ביסל אַנדערש פֿון וואָס די אָנלייגן איז געווען ווייַל ניט נאָר טאָן מיר האָבן צו האַלטן שפּור פון ווו די גרייס איצט איז, מיר אויך ווילן צו האַלטן שפּור פון די קאָפּ ווי ווויל ווי ווו מיר איצט זענען. אזוי איך טראַכטן עס ס גרינגער אויב איך ציען דעם אַרויף. אַזוי לאָזן ס ימאַדזשאַן מיר 'ווע גאַט אַ ריי, אַזוי לאָזן ס זאָגן די קאָפּ איז רעכט דאָ. די קאָפּ פון די שורה, לאָזן ס נאָר זאָגן אַז ס איצט דאָרט, און מיר ווילן צו אַרייַנלייגן עפּעס אין די ריי. איך בין געגאנגען צו רופן גרייס יסענשאַלי איז די זעלבע זאַך ווי עק, דער סוף פון ווו נאָר דיין ריי איז. זאל ס נאָר זאָגן גרייס איז רעכט דאָ. אזוי ווי טוט מען פעאַסיבלי אַרייַנלייגן עפּעס אין אַ ריי? וואָס אינדעקס טאָן מיר ווילן צו שטעלן ווו מיר ווילן צו אַרייַנלייגן אין. אויב דעם איז דער אָנהייב פון דיין ריי און דאָס איז דער סוף פון עס אָדער די גרייס פון עס, ווו טאָן מיר ווילן צו לייגן די ווייַטער כייפעץ? וילעם: [ינאָדאַבאַל] אַנדי פּענג: עקסאַקטלי, איר ווילן צו לייגן עס דיפּענדינג אויף האָבן איר געשריבן עס. אָדער דאָס איז ליידיק אָדער וואָס איז ליידיק. אַזוי איר ווילן צו לייגן עס מיסטאָמע דאָ ווייַל אויב די נומער יס-- אויב די ביסט אַלע פול, איר ווילן צו לייגן עס רעכט דאָ, רעכט? און אַזוי אַז ס, בשעת זייער, זייער פּשוט, נישט גאַנץ שטענדיק ריכטיק ווייַל דער הויפּט חילוק צווישן אַ ריי און אַ אָנלייגן איז אַז די ריי קענען אַקטשאַוואַלי זיין מאַניפּיאַלייטיד אַזוי אַז דער קאָפּ ענדערונגען דיפּענדינג אויף ווו איר ווילן די אָנהייב פון דיין קיו צו אָנהייבן. און ווי אַ רעזולטאַט, דיין עק איז אויך געגאנגען צו טוישן. און אַזוי נעמען אַ קוק אין דעם קאָד רעכט איצט. ווי איר גייז זענען אויך געבעטן צו שרייַבן אויס אויף די ויספרעג, ענקוועוע. אפֿשר מיר וועט רעדן דורך וואָס די ענטפער איז געווען וואָס עס איז געווען. איך קען נישט גאַנץ פּאַסיק דעם שורה אויף איין, אָבער יסענשאַלי דעם שטיק פון קאָד זאָל זיין אויף איין שורה. פאַרברענגען ווי 30 סעקונדעס. נעמען אַ קוק, און זען וואָס דעם איז דער וועג אַז עס איז. זייער, זייער ענלעך סטרוקט, זייער, זייער ענלעך סטרוקטור ווי די פֿריִערדיקע אָנלייגן אַחוץ פֿאַר טאָמער איין שורה פון קאָד. און אַז איינער שורה פון קאָד דאַטערמאַנז די פונקטיאָנאַליטי. און עס טאַקע דיפפערענטיאַטעס אַ ריי פֿון אַ אָנלייגן. ווער עס יז ווילן צו נעמען אַ שטעכן ביי יקספּליינינג וואָס איר ווע גאַט דעם קאָמפּליצירט זאַך אין דאָ? מיר זען דעם צוריקקער פון אונדזער ווונדערלעך פרייַנד מאָדולוס. ווי איר גייז וועט באַלד קומען צו דערקענען אין פּראָגראַממינג, כּמעט עניטיים איר דאַרפֿן עפּעס צו ייַנוויקלען אַרום עפּעס, מאָדולוס איז געגאנגען צו זיין די וועג צו טאָן עס. אַזוי געוואוסט אַז, טוט ווער עס יז ווילן צו פּרובירן יקספּליינינג אַז שורה פון קאָד? יאָ, אַלע ענטפֿערס זענען אנגענומען און באַגריסן. וילעם: זענט איר גערעדט צו מיר? אַנדי פּענג: יאָ. וילעם: אָה, ניט נעבעכדיק. אַנדי פּענג: גוט, אַזוי לאָזן ס גיין דורך דעם קאָד. אַזוי ווען איר ניטאָ טריינג צו לייגן עפּעס אַנטו אַ ריי, אין די שיינע פאַל אַז די קאָפּ כאַפּאַנז צו זיין רעכט דאָ, עס ס זייער גרינג פֿאַר אונדז צו נאָר גיין צו די סוף אַרייַנלייגן עפּעס, רעכט? אבער די גאנצע פונט פון אַ ריי איז אַז דער קאָפּ קענען אַקטשאַוואַלי דינאַמיקאַללי ענדערן דיפּענדינג אויף ווו מיר ווילן די אָנהייב פון אונדזער ק צו זיין, און ווי אַזאַ, די עק איז אויך געגאנגען צו טוישן. און אַזוי ימאַדזשאַן אַז דאָס איז ניט דער ריי, אָבער גאַנץ דעם איז די ריי. זאל ס זאָגן די קאָפּ איז רעכט דאָ. זאל ס זאָגן אונדזער ריי געקוקט ווי דעם. אויב מיר געוואלט צו יבעררוק ווו דער אָנהייב פון די שורה איז, לאָזן ס זאָגן מיר שיפטעד קאָפּ דעם וועג און סיזעס דאָ. איצט מיר ווילן צו לייגן עפּעס צו דעם ריי, אָבער ווי איר גייז קענען זען, עס ס ניט אַזוי פּשוט ווי צו נאָר לייגן וועלכער איז נאָך די נומער ווייַל דעמאָלט מיר לויפן אויס פון גווול פון אונדזער פאַקטיש מענגע. ווו מיר ווילן צו טאַקע שטעלן איז דאָ. אַז ס די שיינקייט פון אַ ריי איז אַז צו אונדז, וויזשוואַלי עס קוקט ווי די שורה גייט ווי דעם, אָבער ווען סטאָרד אין אַ דאַטע ביניען, זיי געבן עס ווי ווי אַ ציקל. עס מין פון ראַפּס אַרום צו די פראָנט דער זעלביקער וועג אַז אַ שורה קענען אויך ייַנוויקלען אַרום דיפּענדינג אויף ווו נאָר איר ווילן צו אָנהייב פון די שורה צו זיין. און אַזוי אויב מיר נעמען אַ קוק אַראָפּ דאָ, לאָזן ס זאָגן מיר געוואלט צו שאַפֿן אַ פֿונקציע גערופֿן ענקוועוע. מיר געוואלט צו לייגן ינט N אין אַז ק. אויב ק.סיזע ק-- מיר וועט רופן אַז אונדזער דאַטן סטרוקטורע-- אויב אונדזער קוועוע.סיזע טוט ניט גלייַך צו קאַפּאַציטעט אָדער אויב עס ס ווייניקער ווי קאַפּאַציטעט, ק.סטרינגס איז די מענגע ין אונדזער ק. מיר רע געגאנגען צו שטעלן אַז גלייַך צו ק.העאַדס, וואָס איז רעכט דאָ, פּלוס ק.סיזע מאָדולוס דורך די קאַפּאַציטעט, וואָס ייַנוויקלען אונדז צוריק אַרום דאָ. אַזוי אין דעם בייַשפּיל, אינדעקס פון קאָפּ איז 1, רעכט? דער אינדעקס פון גרייס איז 0, 1, 2, 3, 4. אַזוי מיר קענען טאָן 1 פּלוס 4 מאָדולוס דורך אונדזער קאַפּאַציטעט וואָס איז 5. וואָס טוט אַז געבן אונדז? וואָס איז די אינדעקס אַז קומט אויס פון דעם? וילעם: 0. אַנדי פּענג: 0, וואָס כאַפּאַנז צו זיין רעכט דאָ, און אַזוי מיר ווילן צו קענען צו טאָן אין רעכט דאָ. און אַזוי דעם יקווייזשאַן דאָ מין פון נאָר אַרבעט מיט קיין נומערן דיפּענדינג אויף ווו דיין קאָפּ און דיין גרייס זענען. אויב איר וויסן וואָס די דאס זענען, איר וויסן פּונקט ווו איר ווילן צו אַרייַנלייגן וועלכער איז נאָך דיין ריי. טוט וואָס מאַכן זינען צו יעדער יינער? איך וויסן מין פון אַ מאַרך טיזער ספּעציעל זינט דעם געקומען אין די Aftermath פון דיין ויספרעג. אבער אַלעווייַ אַלעמען איצט קענען פֿאַרשטיין וואָס דעם לייזונג אָדער דעם פֿונקציע איז דער וועג אַז עס איז. ווער עס יז אַ ביסל ומקלאָר אויף וואָס? קעשורע. און אַזוי איצט, אויב איר געוואלט צו דעקוועוע, דעם איז ווו אונדזער קאָפּ וואָלט זיין shifting ווייַל אויב מיר זענען צו דעקוועוע, מיר טאָן ניט נעמען אַוועק די סוף פון די ק. מיר ווילן צו נעמען אַוועק די קאָפּ, רעכט? אַזוי ווי אַ רעזולטאַט, קאָפּ איז געגאנגען צו טוישן, און אַז איז וואָס ווען איר ענקוועוע, איר ווע גאַט צו האַלטן שפּור פון ווו דיין קאָפּ און דיין גרייס זענען צו קענען צו אַרייַנלייגן אין די ריכטיק שטעלע. און אַזוי ווען איר דעקוועוע, איך אויך פּסעודאָקאָדע עס אויס. פילן Free צו אויב איר ווילן צו פּרווון קאָודינג דעם אויס. איר ווילן צו באַוועגן די קאָפּ, רעכט? אויב איך געוואלט צו דעקוועוע, איך וואָלט מאַך די קאָפּ איבער. דעם וואָלט זיין די קאָפּ. און אונדזער קראַנט גרייס וואָלט אַראָפּרעכענען ווייַל מיר ניט מער האָבן פיר יסודות אין די מענגע. מיר נאָר האָבן דרייַ, און דאַן מיר וועלן צו צוריקקומען וועלכער איז סטאָרד ין פון די קאָפּ ווייַל מיר ווילן צו נעמען דעם ווערט אויס אַזוי זייער ענלעך צו די אָנלייגן. נאָר איר ניטאָ גענומען פון אַ אַנדערש אָרט, און איר האָבן צו רעאַססיגן דיין טייַטל צו אַנדערש אָרט ווי אַ רעזולטאַט. לאָגיקאַללי, אַלעמען נאָכפאָלגן? גרויס. גוט, אַזוי מיר רע געגאנגען צו רעדן אַ ביסל מער אין טיפקייַט וועגן לינגקט רשימות ווייַל זיי וועט זיין זייער, זייער ווערטפול פֿאַר איר אין די לויף פון דעם וואָך ס פּסעץ. לינגקט רשימות, ווי איר גויס קענען געדענקען, אַלע זיי זענען זענען נאָודז וואָס זענען נאָודז פון זיכער וואַלועס פון ביידע אַ ווערט און אַ טייַטל וואָס זענען לינגקט צוזאַמען דורך די פּוינטערז. און אַזוי די סטרוקט אויף ווי מיר שאַפֿן אַ נאָדע דאָ איז מיר האָבן ינט N, וואָס איז וועלכער די ווערט אין אַ קראָם אָדער שטריקל N אָדער וועלכער איר ווילן צו רופן עס, די טשאַר שטערן ען. סטרוקט נאָדע שטערן, וואָס איז די טייַטל וואָס איר ווילן צו האָבן אין יעדער נאָדע, איר ניטאָ געגאנגען צו האָבן אַז טייַטל פונט צו ווייַטער. איר וועט האָבן די קאָפּ פון אַ לינגקט רשימה אַז ס געגאנגען צו פונט צו די מנוחה פון די וואַלועס אַזוי אויף און אַזוי אַרויס ביז איר יווענטשאַוואַלי דערגרייכן דעם סוף. און דעם לעצטע נאָדע איז נאָר געגאנגען צו ניט האָבן אַ טייַטל. עס ס געגאנגען צו פונט צו נאַל, און אַז ס ווען איר וויסן איר ווע שלאָגן די סוף פון דיין לינגקט רשימה איז ווען דיין לעצטע טייַטל טוט נישט פונט צו עפּעס. אַזוי מיר ניטאָ געגאנגען צו גיין אַ ביסל מער אין טיף וועגן ווי איינער וואָלט עפשער זוכן אַ לינגקט רשימה. געדענקען וואָס זענען עטלעכע פון ​​די דראָבאַקס פון די לינגקט רשימות ווערסעס אַ מענגע וועגן אָנפֿרעגן. אַ מענגע איר קענען ביינערי זוכן, אָבער וואָס קענען ניט איר טאָן אַז אין אַ לינגקט רשימה? וילעם: מחמת זיי ניטאָ אַלע קאָננעקטעד, אָבער איר טאָן ניט גאַנץ וויסן ווו [ינאָדאַבאַל]. אַנדי פּענג: יאָ, פּונקט אַזוי געדענקען אַז די העלקייַט פון אַ מענגע איז געווען דער פאַקט אַז מיר האבן ראַנדאָם צוטריט זיקאָרן ווו אויב איך געוואלט די ווערט פון אינדעקס זעקס, איך קען נאָר זאָגן אינדעקס זעקס, געבן מיר אַז ווערט. און אַז ס ווייַל ערייז זענען אויסגעשטעלט אין אַ קאַנטיגיואַס פּלאַץ פון זכּרון אין איין אָרט, כוועראַז מין פון לינגקט רשימות זענען ראַנדאַמלי ינטערספּערסט אַלע אַרום, און דער נאָר וועג איר קענען געפֿינען איינער איז דורך אַ טייַטל וואָס דערציילט איר דער אַדרעס פון ווו אַז ווייַטער נאָדע איז. און אַזוי ווי אַ רעזולטאַט, די בלויז וועג צו זוכן דורך אַ לינגקט רשימה איז לינעאַר זוכן. ווייַל איך טאָן ניט פּונקט וויסן ווו די 12 ווערט אין די לינגקט רשימה איז, איך האָבן צו דורך די ינטייערטי פון אַז לינגקט רשימה איינער דורך איינער פון די קאָפּ צו דער ערשטער נאָדע, צו די רגע נאָדע, צו די דריט נאָדע, אַלע די וועג אַראָפּ ביז איך לעסאָף באַקומען צו ווו אַז נאָדע איך בין קוקן פֿאַר איז. און אַזוי אין דעם זינען, זוכן אויף אַ לינגקט רשימה איז שטענדיק ן. עס ס שטענדיק ן. עס ס שטענדיק אין לינעאַר צייַט. און אַזוי די קאָד אין וואָס מיר ינסטרומענט דעם, און דעם איז אַ ביסל נייַ פֿאַר איר גייז זינט איר גייז האָבן ניט טאַקע גערעדט וועגן אָדער אלץ געזען פּוינטערז אין ווי צו זוכן דורך פּוינטערז, אַזוי מיר וועט גיין דורך דעם זייער, זייער סלאָולי. אַזוי באָאָל זוכן, רעכט, זאל ס ימאַדזשאַן מיר ווילן צו שאַפֿן אַ פֿונקציע גערופֿן זוכן אַז קערט אמת אויב איר געפֿונען אַ ווערט ין די לינגקט רשימה, און עס קערט פאַלש אַנדערש. נאָדע שטערן רשימה איז איצט נאָר די טייַטל צו דער ערשטער נומער אין דיין לינגקט רשימה. ינט N איז די ווערט אַז איר ניטאָ שאַרף פֿאַר אין אַז רשימה. אַזוי נאָדע שטערן טייַטל יקוואַלז רשימה. אַז מיטל מיר ניטאָ באַשטעטיקן און קריייטינג אַ טייַטל צו אַז ערשטער נאָדע ין פון די רשימה. אַלעמען מיט מיר? אַזוי אויב מיר זענען געווען צו גיין צוריק דאָ, איך וואָלט האָבן יניטיאַליזעד אַ טייַטל אַז ווייזט צו די קאָפּ פון וועלכער אַז רשימה איז. און דעמאָלט אַמאָל איר באַקומען אַראָפּ דאָ, בשעת טייַטל טוט נישט גלייַך נאַל, אַזוי אַז איז די שלייף אין וואָס מיר זענען געגאנגען צו זיין דערנאָך טראַווערסינג די מנוחה פון אונדזער רשימה ווייַל וואָס כאַפּאַנז ווען טייַטל יקוואַלז נאַל? מיר וויסן אַז מיר האַווע-- וילעם: [ינאָדאַבאַל] אַנדי פּענג: עקסאַקטלי, אַזוי מיר וויסן אַז מיר ווע ריטשט די סוף פון רשימה, רעכט? אויב איר גיין צוריק דאָ, יעדער נאָדע זאָל זיין פּוינטינג צו אנדערן נאָדע און אַזוי אויף און אַזוי אַרויס ביז איר שלאָגן יווענטשאַוואַלי די עק פון דיין לינגקט רשימה, וואָס האט אַ טייַטל אַז פּונקט טוט נישט פונט ערגעץ אנדערע ווי ניט. און אַזוי איר בייסיקלי וויסן אַז דיין רשימה איז נאָך דאָרט זיך ביז טייַטל טוט נישט גלייַך נאַל ווייַל אַמאָל עס יקוואַלז נאַל, איר וויסן אַז עס ס ניט מער שטאָפּן. אזוי וואָס איז די שלייף אין וואָס מיר ניטאָ געגאנגען צו האָבן די פאַקטיש זוכן. און אויב די פּאָינטער-- טאָן איר זען אַז מין פון פייַל פונקציאָנירן דאָרט? אַזוי אויב טייַטל פּוינץ צו N, אויב די טייַטל ביי N יקוואַלז יקוואַלז ן, אַזוי אַז מיטל אַז אויב די טייַטל אַז איר ניטאָ שאַרף פֿאַר אויף דער סוף פון יעדער נאָדע איז אַקטשאַוואַלי גלייַך צו די ווערט איר ניטאָ קוקן פֿאַר, דעמאָלט איר ווילן צו צוריקקומען אמת. אַזוי בייסיקלי, אויב איר ניטאָ בייַ אַ נאָדע אַז האט די ווערט אַז איר ניטאָ קוקן פֿאַר, איר וויסן אַז איר ווע שוין קענען צו הצלחה זוכן. אַנדערש, איר ווילן צו שטעלן דיין טייַטל צו די ווייַטער נאָדע. אַז איז וואָס אַז שורה דאָ איז טאן. פּוינטער יקוואַלז טייַטל ווייַטער. אַלעמען זען ווי אַז ס ארבעטן? און יסענשאַלי איר ניטאָ געגאנגען צו נאָר דורך די ינטייערטי פון דער רשימה, רעסעטטינג דיין טייַטל יעדער מאָל ביז איר יווענטשאַוואַלי שלאָגן די סוף פון די רשימה. און איר וויסן אַז עס זענען ניט מער נאָודז צו זוכן דורך, און דעמאָלט איר קענען צוריקקומען פאַלש ווייַל איר וויסן אַז, טאַקע, נו, אויב איך ווע שוין קענען צו זוכן דורך די ינטייערטי פון די רשימה. אויב אין דעם בייַשפּיל, אויב איך געוואלט צו קוקן פֿאַר די ווערט פון 10, און איך אָנהייבן בייַ די קאָפּ, און איך זוכן אַלע די וועג אַראָפּ, און איך יווענטשאַוואַלי גאַט צו דעם, וואָס אַ טייַטל אַז ווייזט צו נאַל, איך וויסן אַז, באָבקעס, איך טרעפן 10 איז ניט אין דעם רשימה ווייַל איך קען ניט געפֿינען עס. און איך בין אין די סוף פון די רשימה. און אין וואָס פאַל איר וויסן איך בין געגאנגען צו צוריקקומען פאַלש. לאָזן אַז ווייקן אין פֿאַר אַ קליין ביסל. דעם וועט זיין שיין וויכטיק פֿאַר דיין פּסעט. די לאָגיק פון עס איז זייער פּשוט, טאָמער סינטאַקטיקאַללי נאָר ימפּלאַמענינג עס. איר גויס ווילן צו מאַכן זיכער אַז איר פֿאַרשטיין. קיל. גוט, אַזוי ווי מיר וואָלט זיין ינסערטינג נאָודז, רעכט, אין אַ רשימה ווייַל געדענקען וואָס זענען די וואָס פון די Benefits פון בעת ​​אַ לינגקט רשימה קעגן אַ מענגע אין טערמינען פון סטאָרידזש? וילעם: עס ס דינאַמיש, אַזוי עס ס גרינגער טאָ-- אַנדי פּענג: עקסאַקטלי, אַזוי עס ס דינאַמיש, וואָס מיטל אַז עס קענען יקספּאַנד און ייַנשרומפּן דיפּענדינג אויף דער באַניצער ס דאַרף. און אַזוי, אין דעם זינען, מיר טאָן ניט דאַרפֿן צו וויסט ומנייטיק זכּרון ווייַל איך אויב איך טאָן ניט וויסן ווי פילע וואַלועס איך ווילן צו קראָם, עס טוט נישט מאַכן חוש פֿאַר מיר צו שאַפֿן אַ מענגע ווייַל אויב איך ווילן צו קראָם 10 וואַלועס און איך מאַכן אַ מענגע פון ​​1,000, אַז ס אַ פּלאַץ פון ווייסטאַד זיקאָרן, אַלאַטיד. אַז ס וואָס מיר ווילן צו נוצן אַ לינגקט רשימה צו קענען צו דינאַמיקאַללי ענדערן אָדער ייַנשרומפּן אונדזער גרייס. און אַזוי אַז מאכט ינסערשאַן אַ ביסל מער קאָמפּליצירט. זינט מיר קענען ניט ראַנדאַמלי צוטריט יסודות די וועג וואָס מיר וואָלט פון אַ מענגע. אויב איך ווילן צו אַרייַנלייגן אַן עלעמענט אין דער זיבעטער אינדעקס, איך נאָר קענען טאָן עס אין דער זיבעטער אינדעקס. אויף אַ לינגקט רשימה, עס טוט נישט גאַנץ אַרבעט ווי לייכט, און אַזוי אויב מיר געוואלט צו טאָן דער איינער דאָ אין די לינגקט רשימה, וויזשוואַלי, עס ס זייער גרינג צו זען. מיר נאָר ווילן צו טאָן עס רעכט דאָרט, רעכט אין די אָנהייב פון דער רשימה, רעכט נאָך קאָפּ. אבער די וועג אין וואָס מיר האָבן צו רעאַססיגן די פּוינטערז איז אַ ביסל קאַנוואַלוטאַד אָדער, לאַדזשיקלי, עס מאכט חוש, אָבער איר ווילן צו מאַכן זיכער אַז איר האָבן עס גאָר אַראָפּ מחמת די לעצטע זאַך איר ווילן איז צו רעאַססיגן אַ טייַטל די וועג אַז מיר ניטאָ טאן דאָ. אויב איר דערעפערענסע די טייַטל פון קאָפּ צו 1, דעריבער אַלע פון ​​אַ פּלוצעמדיק די מנוחה פון דיין לינגקט רשימה איז פאַרפאַלן ווייַל איר האָבן ניט אַקטשאַוואַלי Created אַ צייַטווייַליק עפּעס. אַז ס שפּיציק צו די 2. אויב איר רעאַססיגן די טייַטל, דעמאָלט דער מנוחה פון דיין רשימה איז טאָוטאַלי פאַרפאַלן. אזוי איר ווילן צו זייַן זייער, זייער אָפּגעהיט דאָ צו ערשטער באַשטימען די טייַטל פון וועלכער איר ווילן צו טאָן אין וואוהין איר ווילן, און דאַן איר קענען דערעפערענסע די מנוחה פון דיין רשימה. אזוי דעם אַפּלייז פֿאַר וואוהין איר ניטאָ טריינג צו טאָן אין. אויב איר ווילן צו אַרייַנלייגן אין די קאָפּ, אויב איר ווילן צו ענטפֿערן דאָ, אויב איר ווילן צו אַרייַנלייגן בייַ דער סוף, געזונט, די סוף איך טרעפן איר וואָלט נאָר האָבן קיין טייַטל, אָבער איר ווילן צו מאַכן זיכער אַז איר טאָן ניט פאַרלירן די מנוחה פון דיין רשימה. איר שטענדיק ווילן צו מאַכן זיכער דיין נייַ נאָדע איז פּוינטינג צו וועלכער איר ווילן צו טאָן אין, און דעמאָלט איר קענען לייגן די טשאַינינג אויף. אַלעמען קלאָר? דעם איז געגאנגען צו זיין איינער פון די פאַקטיש ישוז. איינער פון די מערסט הויפּט ישוז איר ניטאָ געגאנגען צו האָבן אויף דיין פּסעט איז אַז איר ניטאָ געגאנגען צו פּרובירן צו מאַכן אַ לינגקט רשימה און אַרייַנלייגן זאכן אָבער דעמאָלט נאָר פאַרלירן די מנוחה פון דיין לינגקט רשימה. און איר ניטאָ געגאנגען צו זיין ווי, איך טאָן ניט וויסן וואָס דאָס איז געשעעניש? און עס ס אַ ווייטיק צו גיין דורך און זוכן אַלע פון ​​דיין פּוינטערז. און איך גאַראַנטירן איר אויף דעם פּסעט, שרייבן און צייכענונג די נאָודז אויס וועט זיין זייער, זייער נוציק. אַזוי איר קענען גאָר האַלטן שפּור פון ווו אַלע אייער פּוינטערז זענען, וואָס ס 'געגאנגען אומרעכט, ווו אַלע אייער נאָודז זענען, וואָס איר דאַרפֿן צו טאָן צו צוטריט אָדער אַרייַנלייגן אָדער ויסמעקן אָדער קיין פון זיי. אַלעמען גוט מיט וואָס? קיל. אַזוי אויב מיר געוואלט צו קוקן בייַ די קאָד? אָה, איך טאָן ניט וויסן אויב מיר קענען זען טהע-- גוט, אַזוי אין די שפּיץ אַלע עס איז איז אַ פֿונקציע געהייסן אַרייַנלייגן ווו מיר וועלן צו טאָן ינט N אין די לינגקט רשימה. מיר רע געגאנגען צו גיין דורך דעם. עס ס אַ פּלאַץ פון קאָד, אַ פּלאַץ פון נייַ סינטאַקס. מיר וועט זיין גוט. אזוי זיך אין די שפּיץ, ווען מיר ווילן צו שאַפֿן עפּעס וואָס טאָן מיר דאַרפֿן צו טאָן, ספּעציעל אויב איר ווילן עס צו זיין סטאָרד אויף די אָנלייגן אָבער אין די קופּע? מיר גיין צו אַ מאַללאָק, רעכט? אַזוי מיר רע געגאנגען צו מאַכן אַ טייַטל. נאָדע, טייַטל, ניו יקוואַלז מאַללאָק די גרייס פון אַ נאָדע ווייַל מיר ווילן אַז נאָדע צו זיין Created. מיר ווילן די סומע פון זיקאָרן אַז אַ נאָדע נעמט זיך צו זיין אַלאַטיד פֿאַר די שאַפונג פון די נייַ נאָדע. און דעמאָלט מיר רע געגאנגען צו טשעק צו זען אויב נייַ יקוואַלז יקוואַלז נאַל. געדענקען וואָס מיר געזאגט? וועלכער איר מאַללאָק, וואָס מוזן איר שטענדיק טאָן? איר מוזן שטענדיק טשעק צו זען צי אָדער ניט וואָס איז נאַל. למשל, אויב דיין אָפּערייטינג סיסטעם איז גאָר פול, אויב איר האט קיין מער זכּרון בייַ אַלע און איר פּרובירן צו מאַללאָק, עס וואָלט צוריקקומען נאַל פֿאַר איר. און אַזוי אויב איר פּרובירן צו נוצן עס ווען עס איז געווען פּוינטינג צו נאַל, איר ניטאָ ניט געגאנגען צו קענען צו צוטריט אַז אינפֿאָרמאַציע. און אַזוי ווי אַזאַ, מיר געוואלט צו מאַכן זיכער אַז ווען איר ניטאָ מאַללאָסינג, איר ניטאָ שטענדיק טשעק צו זען אויב אַז זכּרון געגעבן צו איר איז נאַל. און אויב עס ס ניט, דעמאָלט מיר קענען באַוועגן אויף מיט די מנוחה פון אונדזער קאָד. אַזוי מיר רע געגאנגען צו ינישאַלייז די נייַ נאָדע. מיר רע געגאנגען צו טאָן נייַ N יקוואַלז ן. און דעמאָלט מיר רע געגאנגען צו טאָן שטעלן נייַ די טייַטל אויף נייַ צו נאַל ווייַל רעכט איצט מיר טאָן ניט ווילן עפּעס פֿאַר אים צו פונט צו. מיר האָבן קיין געדאַנק ווו עס ס געגאנגען צו שטעלן איר, און דעריבער אויב מיר ווילן צו אַרייַנלייגן עס אין די קאָפּ, דעמאָלט מיר קענען רעאַססיגן די טייַטל צו דעם קאָפּ. טוט אַלעמען נאָכפאָלגן די לאָגיק פון ווו אַז ס געשעעניש? אַלע מיר רע טאן איז קריייטינג אַ נייַ נאָדע, באַשטעטיקן די טייַטל צו נאַל, און דעמאָלט רעאַססיגנינג עס צו די קאָפּ אויב מיר וויסן מיר ווילן צו טאָן עס אין די קאָפּ. און דעריבער די קאָפּ איז געגאנגען צו פונט צו וואָס נייַ נאָדע. אַלעמען גוט מיט וואָס? אַזוי עס ס אַ צוויי-שריט פּראָצעס. איר ווע גאַט צו ערשטער באַשטימען וועלכער איר ניטאָ קריייטינג. שטעלן אַז טייַטל צו די דערמאָנען, און דעמאָלט איר קענען מין פון דערעפערענסע דער ערשטער טייַטל און פונט עס צו די נייַ נאָדע. ווו נאָר איר ווילן צו טאָן עס, אַז לאָגיק איז געגאנגען צו האַלטן אמת. עס ס מין פון ווי אַסיינינג צייַטווייַליק וועריאַבאַלז. געדענק, איר ווע גאַט צו מאַכן זיכער אַז איר דו זאלסט נישט פאַרלירן שפּור פון אויב איר ניטאָ סוואַפּינג. איר ווילן צו מאַכן זיכער אַז איר האָבן אַ צייַטווייַליק בייַטעוודיק אַז מין פון האלט שפּור פון ווו אַז זאַך איז סטאָרד אַזוי אַז איר דו זאלסט נישט פאַרלירן קיין ווערט אין די לויף פון ווי מעסינג אַרום מיט עס. גוט, אַזוי קאָד וועט זיין דאָ. איר גויס נעמען אַ קוק נאָך אָפּטיילונג. עס וועט זיין דאָרט. אַזוי איך טרעפן ווי טוט דעם אַנדערש אויב מיר געוואלט צו טאָן אין די מיטל אָדער די סוף? טוט ווער עס יז האָבן אַ געדאַנק פון וואָס ס די פּסעודאָקאָדע ווי די לאַדזשיקאַל דערמאָנען אַז מיר וואָלט נעמען אויב מיר געוואלט צו טאָן עס אין די מיטל? אַזוי אויב מיר געוואלט צו טאָן עס אין די קאָפּ, אַלע מיר טאָן איז מאַכן אַ נייע נאָדע. מיר שטעלן די טייַטל פון אַז נייַ נאָדע צו וועלכער די קאָפּ, און דעמאָלט מיר שטעלן די קאָפּ צו די נייע נאָדע, רעכט? אויב מיר געוואלט צו טאָן עס אין די מיטל פון דער רשימה, וואָס וואָלט מיר האָבן צו טאָן? וילעם: עס וואָלט נאָך זייַן אַ ענלעך פּראָצעס פון ווי אַסיינינג טייַטל און דעמאָלט אַסיינינג אַז טייַטל, אָבער מיר וואָלט האָבן צו געפינען עס. אַנדי פּענג: עקסאַקטלי, אַזוי פּונקט דער זעלביקער פּראָצעס חוץ איר האָבן צו געפינען ווו פּונקט איר ווילן אַז נייַ טייַטל צו גיין אין, אַזוי אויב איך ווילן צו טאָן אין די מיטל פון לינגקט ליסט-- גוט, לאָזן ס זאָגן אַז ס אונדזער לינגקט רשימה. אויב מיר ווילן צו טאָן עס רעכט דאָ, מיר רע געגאנגען צו מאַכן אַ נייע נאָדע. מיר רע געגאנגען צו מאַללאָק. מיר רע געגאנגען צו מאַכן אַ נייע נאָדע. מיר רע געגאנגען צו באַשטימען די טייַטל פון דעם נאָדע דאָ. אבער די פּראָבלעם אַז דיפפערס פון ווו די קאָפּ איז איז אַז מיר געוואוסט פּונקט ווו די קאָפּ איז. עס איז געווען רעכט אין דער ערשטער, רעכט? אבער דאָ מיר ווע גאַט צו האַלטן שפּור פון ווו מיר ניטאָ ינסערטינג עס אין. אויב מיר זענען ינסערטינג אונדזער נאָדע דאָ, מיר ווע גאַט צו מאַכן זיכער אַז די איינער פרייַערדיק צו דעם נאָדע איז דער איין אַז רעאַססיגנס די טייַטל. אַזוי דעמאָלט איר האָבן צו מין פון האַלטן שפּור פון צוויי זאכן. אויב איר האַלטן שפּור פון ווו דעם נאָדע איצט איז ינסערטינג אין. איר אויך האָבן צו האַלטן שפּור פון ווו די פֿריִערדיקע נאָדע אַז איר ניטאָ קוקן אין איז אויך דאָרט. אַלעמען גוט מיט וואָס? קעשורע. ווי וועגן ינסערטינג אין די סוף? אויב איך געוואלט צו לייגן עס הערע-- אויב איך געוואלט צו לייגן אַ נייַ נאָדע צו די סוף פון אַ רשימה, ווי זאל איך גיין וועגן טאן אַז? וילעם: אזוי איצט, די לעצטע איין 'ס שפּיציק צו נאַל. אַנדי פּענג: יאָ. פּונקט, אַזוי דעם איינער איצט איז אנגעוויזן צו וויסן, און אַזוי איך טרעפן, אין דעם זינען, עס ס זייער גרינג צו לייגן צו דער סוף פון אַ רשימה. כל איר האָבן צו טאָן איז שטעלן עס גלייַך צו נאַל און דעמאָלט בום. רעכט דאָרט, זייער גרינג. זייער פּשוט. זייער ענלעך צו די קאָפּ, אָבער לאַדזשיקלי איר ווילן צו מאַכן זיכער אַז די טריט איר נעמען צו טאן קיין פון דעם, איר ניטאָ ווייַטערדיק צוזאמען. עס ס זייער גרינג צו, אין די מיטל פון דיין קאָד, באַקומען קאַט זיך אויף, טאַקע, איך ווע גאַט אַזוי פילע פּוינטערז. איך טאָן ניט וויסן ווו עפּעס איז פּוינטינג צו. איך טאָן ניט אַפֿילו וויסן וואָס נאָדע איך בין אויף. וואָס ס 'געגאנגען אויף? אָפּרוען, רויק אַראָפּ, נעמען אַ טיף אָטעם. ציען אויס דיין לינגקט רשימה. אויב איר זאָגן, איך וויסן ווו פּונקט איך דאַרפֿן צו טאָן דעם אין און איך וויסן פּונקט ווי צו רעאַססיגן מיין פּוינטערז, פיל, פיל גרינגער צו בילד אָוט-- פיל, פיל גרינגער צו ניט באַקומען פאַרפאַלן אין די באַגז פון אייער קאָד. אַלעמען גוט מיט וואָס? קעשורע. אַזוי איך טרעפן אַ באַגריף אַז מיר האָבן ניט טאַקע גערעדט וועגן איידער איצט, און איך טרעפן איר מיסטאָמע וועט ניט טרעפן פיל יעט-- עס ס מין פון אַ אַוואַנסירטע קאָנסעפּט-- איז אַז מיר טאַקע האָבן אַ דאַטע סטרוקטור גערופֿן אַ דאַבלי לינגקט רשימה. אַזוי ווי איר גייז קענען זען, אַלע מיר רע טאן איז קריייטינג אַ פאַקטיש ווערט, אַן עקסטרע טייַטל אויף יעדער פון אונדזער נאָודז אַז אויך ווייזט צו די פרייַערדיק נאָדע. אַזוי ניט בלויז טאָן מיר האָבן אונדזער נאָודז פונט צו די ווייַטער איינער. זיי אויך פונט צו די פֿריִערדיקע איינער. איך בין געגאנגען צו איגנאָרירן די צוויי רעכט איצט. אַזוי דעמאָלט איר האָבן אַ קייט אַז קענען באַוועגן ביידע וועגן, און דעמאָלט עס ס אַ ביסל גרינגער צו לאַדזשיקלי נאָכגיין צוזאמען. ווי דאָ, אַנשטאָט פון בעכעסקעם שפּור פון, טאַקע, איך האָבן צו וויסן אַז דאָס נאָדע איז דער איינער אַז איך האָבן צו רעאַססיגן, איך קענען נאָר גיין דאָ און נאָר ציען די פֿריִערדיקע. דעמאָלט איך וויסן פּונקט ווו אַז איז, און דעמאָלט איר טאָן ניט האָבן צו דורך די ינטייערטי פון די לינגקט רשימה. עס ס אַ ביסל גרינגער. אבער ווי אַזאַ, איר האָבן דאַבלי די סומע פון ​​פּוינטערז, אַז ס טאָפּל די סומע פון ​​זיקאָרן. עס ס אַ פּלאַץ פון פּוינטערז צו האַלטן שפּור פון. עס ס אַ ביסל מער קאָמפּליצירט, אָבער עס ס אַ ביסל מער באַניצער פרייַנדלעך דיפּענדינג אויף וואָס איר ניטאָ טריינג צו ויספירן. אזוי דעם טיפּ פון דאַטן סטרוקטור טאָוטאַלי יגזיסץ, און די ביניען פֿאַר איז זייער, זייער פּשוט חוץ אַלע איר ניטאָ בעת איז, אַנשטאָט פון נאָר אַ טייַטל צו ווייַטער, איר אויך האָבן אַ טייַטל צו פֿריִערדיקע. אַז ס אַלע די חילוק איז. אַלעמען גוט מיט וואָס? קיל. אַלע רעכט, אַזוי איצט איך בין צו טאַקע פאַרברענגען מיסטאָמע ווי 15-20 מינוט אָדער די סכום פון די איבעריקע צייַט אין אָפּטיילונג גערעדט וועגן האַש טישן. ווי פילע פון ​​איר גויס האָבן לייענען פּסעט5 ספּעק? אַלע רעכט, גוט. אַז ס העכער ווי די 50% פון נאָרמאַלי. עס ס גוט. אַזוי ווי איר גויס וועט זען, איר ניטאָ אַרויסרופן אין פּסעט5 וועט זיין צו ינסטרומענט אַ ווערטערבוך ווו איר מאַסע איבער 140.000 ווערטער אַז מיר געבן איר און רעגע קעסטל עס קעגן אַלע פון ​​די טעקסט. מיר וועט געבן איר ראַנדאָם ברעקלעך פון ליטעראַטור. מיר וועט געבן איר די אָדיססיי. מיר וועט געבן איר די יליאַד. מיר וועט געבן איר אַוסטין פּאָווערס. און דיין אַרויסרופן וועט זיין צו רעגע טשעק יעדער איין וואָרט אין אַלע פון די דיקשאַנעריז יסענשאַלי מיט אונדזער רעגע קאָנטראָליאָר. און אַזוי עס ס אַ ביסל טיילן פון קריייטינג דעם פּסעט, ערשטער איר ווילן צו זיין קענען צו אַקטשאַוואַלי מאַסע אַלע די ווערטער אין דיין ווערטערבוך, און דעמאָלט איר ווילן צו קענען צו רעגע קאָנטראָלירן אַלע פון ​​זיי. און אַזוי ווי אַזאַ, איר ניטאָ געגאנגען צו דאַרפן אַ דאַטן סטרוקטור וואָס קענען טאָן דעם שנעל און עפפיסיענטלי און דינאַמיקאַללי. אזוי איך רעכן די יזיאַסט וועג צו טאָן דאָס, איר וואָלט מיסטאָמע מאַכן אַ מענגע, רעכט? די יזיאַסט וועג פון סטאָרידזש איז איר קענען מאַכן אַ מענגע פון ​​140,000 ווערטער און נאָר שטעלן זיי אַלע דאָרט און דעמאָלט דורך זיי דורך ביינערי זוכן אָדער דורך סאַלעקשאַנז אָדער נאָט-- נעבעכדיק אַז ס סאָרטינג. איר קענען סאָרט זיי און דעמאָלט דורך זיי דורך ביינערי זוכן אָדער נאָר לינעאַר זוכן און פּונקט לעצט די ווערטער, אָבער אַז נעמט אַ ריזיק סומע פון ​​זכּרון, און עס ס ניט זייער עפעקטיוו. און אַזוי מיר רע געגאנגען צו אָנהייבן גערעדט וועגן וועגן פון מאכן אונדזער פליסנדיק מאָל מער עפעקטיוו. און אונדזער ציל איז צו באַקומען קעסיידערדיק צייַט ווו עס ס כּמעט ווי ערייז, ווו איר האָבן ינסטאַנטאַניאַס צוטריט. אויב איך געוואלט צו זוכן פֿאַר עפּעס, איך ווילן צו קענען צו נאָר, בום, געפינען עס פּונקט, און ציען עס אויס. און אַזוי אַ סטרוקטור אין וואָס מיר וועט זיין פּאַסיק זייער נאָענט צו קענען צו צוטריט קעסיידערדיק צייַט, דעם רוח גראַיל אין פּראָגראַממינג פון קעסיידערדיק צייַט איז גערופֿן אַ האַש טיש. און אַזוי דוד ביז אַהער דערמאנט די [ינאָדאַבאַל] אַ קליין ביסל אין לעקציע, אָבער מיר ניטאָ געגאנגען צו טאַקע ונטערטוקנ זיך אין טיף דעם וואָך אויף אַ שטיק אַז ס וועגן ווי אַ האַש טיש אַרבעט. אַזוי די וועג אַז אַ האַש טיש אַרבעט, למשל, אויב איך געוואלט צו קראָם אַ בינטל פון ווערטער, אַ בינטל פון ווערטער אין די ענגליש שפּראַך, איך קען טיערעטיקאַלי שטעלן באַנאַנע, עפּל, קיווי, מאַנגאָ, פּאָר, און דינקע אַלע אויף נאָר אַ מענגע. זיי קען אַלע פּאַסיק אין און זיין געפינען. עס 'ד ווערן מין פון אַ ווייטיק צו זוכן דורך און צוטריט, אָבער די גרינגער וועג פון טאן דעם איז אַז מיר קענען מאַכן אַקשלי אַ סטרוקטור גערופֿן אַ האַש טיש ווו מיר האַש. מיר לויפן אַלע פון ​​אונדזער שליסלען דורך אַ האַש פֿונקציע, אַ יקווייזשאַן, אַז טורנס זיי אַלע אין עטלעכע סאָרט פון אַ ווערט וואָס דעמאָלט מיר קענען קראָם אַנטו יסענשאַלי אַ מענגע פון ​​לינגקט רשימה. און אַזוי דאָ, אויב מיר געוואלט צו קראָם ענגליש ווערטער, מיר קען פּאַטענטשאַלי נאָר, איך טאָן ניט וויסן, דרייען אַלע די ערשטער אותיות אין עטלעכע סאָרט פון אַ נומער. און אַזוי, למשל, אויב איך געוואלט א צו זיין סאַנאַנאַמאַס מיט אַפּפּלע-- אָדער מיט די אינדעקס פון 0, און ב צו זיין סאַנאַנאַמאַס מיט 1, מיר קענען האָבן 26 ערטער וואָס קענען נאָר קראָם אַלע פון ​​די אותיות פון די Alphabet אַז מיר וועט אָנהייבן מיט. און דעמאָלט מיר קענען האָבן עפּל אין די אינדעקס פון 0. מיר קענען האָבן באַנאַנע אין דער אינדעקס פון 1, דינקע אין דער אינדעקס פון 2, און אַזוי אויף און אַזוי אַרויס. און אַזוי אויב איך געוואלט צו זוכן מיין האַש טיש און צוטריט עפּל, איך וויסן עפּל סטאַרץ מיט אַ א, און איך וויסן פּונקט אַז עס מוזן זיין און די האַש טיש אין אינדעקס 0 ווייַל פון די פֿונקציע ביז אַהער אַסיינד. אַזוי איך טאָן ניט וויסן, מיר זענען אַ באַניצער פּראָגראַם ווו איר וועט זיין באַפֿוילן מיט אַרביטראַרילי-- נישט אַרביטרעראַלי, מיט טריינג צו טהאָוגהטפוללי טראַכטן פון גוט יקווייזשאַנז צו קענען צו פאַרשפּרייטן אויס אַלע פון ​​דיין וואַלועס אין אַ וועג זיי קענען לייכט צוטריט עס שפּעטער אויף מיט ווי אַ יקווייזשאַן אַז איר, זיך, וויסן. אַזוי אין דעם זינען אויב איך געוואלט צו גיין צו מאַנגאָ, איך וויסן, טאַקע, עס סטאַרץ מיט עם. עס מוזן זיין אין דער אינדעקס פון 12. איך טאָן ניט האָבן צו זוכן דורך עפּעס. איך וויסן עקסאַקטלי-- איך קען נאָר גיין צו דער אינדעקס פון 12 און ציען אַז אויס. אַלעמען קלאָר אויף ווי אַ האַש טיש ס פֿונקציע אַרבעט? עס ס מין פון נאָר אַ מער קאָמפּליצירט מענגע. אַז ס אַלע עס איז. קעשורע. אַזוי איך טרעפן מיר לויפן אין דעם אַרויסגעבן פון וואָס כאַפּאַנז אויב איר האָבן קייפל זאכן אַז געבן איר די זעלבע אינדעקס? אַזוי זאָגן אונדזער פֿונקציע, אַלע עס האט איז געווען נעמען אַז ערשטער בריוו און קער אַז אין אַ ריספּעקטיוו 0 דורך 25 אינדעקס. אַז ס טאָוטאַלי פייַן אויב איר נאָר האָבן איינער פון יעדער. אבער די רגע איר אָנהייב ווייל מער, איר ניטאָ געגאנגען צו האָבן וואָס ס גערופֿן אַ צונויפשטויס. אַזוי אויב איך פּרובירן צו טאָן באַגראָבן זיך אַ האַש טיש אַז שוין האט באַנאַנע אויף עס, וואָס ס גיי צו פּאַסירן ווען איר פּרובירן צו אַרייַנלייגן אַז? שלעכט זאכן ווייַל באַנאַנע שוין יגזיסץ אין די אינדעקס וואָס איר ווילן צו קראָם עס אין. בערי מין פון איז ווי, אַה, וואָס טוט איך טאָן? איך טאָן ניט וויסן ווו צו גיין. ווי טאָן איך האַלטן דעם? און אַזוי איר גייז וועט מין פון זען מיר טאָן דעם טריקי זאַך ווו מיר קענען מין פון אַקטשאַוואַלי שאַפֿן לינגקט רשימה אין אונדזער ערייז. און אַזוי די יזיאַסט וועג צו טראַכטן וועגן דעם, אַלע האַש טיש איז אַ מענגע פון ​​לינגקט רשימות. און אַזוי, אין אַז זינען, איר האָבן דעם שיין מענגע פון ​​פּוינטערז, און דעריבער יעדער טייַטל אין וואָס ווערט, אין אַז אינדעקס, קענען אַקטשאַוואַלי פונט צו אנדערע זאכן. און אַזוי איר האָבן אַלע די באַזונדער קייטן קומענדיק אַוועק פון איין גרויס מענגע. און אַזוי דאָ, אויב איך געוואלט צו אַרייַנלייגן יאַגדע, איך וויסן, גוט, איך בין געגאנגען צו ינפּוט עס דורך מיין האַש פֿונקציע. איך בין געגאנגען צו סוף אַרויף מיט דער אינדעקס פון 1, און דעמאָלט איך בין געגאנגען צו קענען צו האָבן נאָר אַ קלענערער סאַבסעט פון דעם ריז 140.000-וואָרט ווערטערבוך. און דעמאָלט איך קענען נאָר קוק דורך 26/01 פון אַז. און אַזוי דעמאָלט איך קענען נאָר אַרייַנלייגן יאַגדע אָדער פֿאַר אָדער נאָך באַנאַנע אין דעם פאַל? נאָך, רעכט? און אַזוי איר ניטאָ געגאנגען צו ווילן צו אַרייַנלייגן דעם נאָדע נאָך באַנאַנע, און אַזוי איר ניטאָ געגאנגען צו אַרייַנלייגן ביי די עק פון אַז לינגקט רשימה. איך בין געגאנגען צו גיין צוריק צו דעם פרייַערדיק רוק, אַזוי איר גייז קענען זען ווי האַש פֿונקציע אַרבעט. אַזוי האַש פֿונקציע איז דעם יקווייזשאַן אַז איר ניטאָ פליסנדיק מין פון דיין ינפּוט דורך צו באַקומען וועלכער אינדעקס איר ווילן צו באַשטימען עס צו. און אַזוי, אין דעם בייַשפּיל, אַלע מיר געוואלט צו טאָן איז געווען נעמען די ערשטער בריוו, דרייַ אַז אין אַן אינדעקס, דעמאָלט מיר קענען קראָם אַז אין אונדזער האַש פונקציאָנירן. אַלע מיר רע טאן דאָ איז מיר ניטאָ קאַנווערטינג דער ערשטער בריוו. אַזוי קייקיי [0] איז נאָר דער ערשטער בריוו פון וועלכער שטריקל מיר רע ווייל, מיר ניטאָ פּאַסינג אין. מיר ניטאָ קאַנווערטינג אַז צו אויבערשטער, און מיר ניטאָ סאַבטראַקטינג דורך ופּפּערקאַסע א, אַזוי אַלע אַז איז טאן איז געבן אונדז אַ נומער אין וואָס מיר קענען האַש אונדזער וואַלועס אַנטו. און דעמאָלט מיר רע געגאנגען צו צוריקקומען האַש מאָדולוס גרייס. זיין זייער, זייער אָפּגעהיט ווייַל, טיערעטיקאַלי, דאָ דיין האַש ווערט קען זיין אַנלימאַטאַד. עס קען נאָר גיין אויף און אויף און אויף. עס קען זיין עטלעכע טאַקע, טאַקע גרויס ווערט, אָבער ווייַל דיין האַש טיש אַז איר ווע Created נאָר האט 26 ינדעקסיז, איר ווילן צו מאַכן זיכער דיין מאָדולוסינג אַזוי אַז איר דו זאלסט נישט רונ-- עס ס די זעלבע זאַך ווי דיין קוועוע-- אַזוי אַז איר טאָן ניט לויפן אַוועק די דנאָ פון דיין האַש פֿונקציע. איר ווילן צו ייַנוויקלען עס צוריק אַרום די זעלבע וועג אין [ינאָדאַבאַל] ווען איר האט ווי אַ זייער, זייער גרויס בריוו, איר האט ניט וועלן, אז צו נאָר לויפן אַוועק די סוף. זעלביקער זאַך דאָ, איר ווילן צו מאַכן זיכער עס טוט נישט לויפן אַוועק די סוף דורך ראַפּינג אַרום צו די שפּיץ פון די טיש. אזוי דעם איז נאָר אַ זייער פּשוט האַש פֿונקציע. אַלע אַז האט איז געווען נעמען די ערשטער בריוו פון וועלכער אונדזער ינפּוט איז און קער אַז אין אַן אינדעקס אַז מיר קען שטעלן אין אונדזער האַש טיש. יאָ, און אַזוי ווי איך געזאגט פריער, די וועג וואָס מיר האַלטן קאַליזשאַנז אין אונדזער האַש טישן זענען בעת, וואָס מיר רופן, טשאַינינג. אַזוי אויב איר פּרובירן צו טאָן קייפל ווערטער וואָס אָנהייבן מיט די זעלבע זאַך, איר ניטאָ געגאנגען צו האָבן איין האַש ווערט. אַוואָקאַדאָס און עפּל, אויב איר ווע לויפן עס דורך אונדזער האַש פֿונקציע, זענען געגאנגען צו געבן איר די זעלבע נומער, די נומער פון 0. און אַזוי די וועג מיר האַלטן אַז איז אַז מיר קענען אַקטשאַוואַלי מין פון לינק זיי צוזאַמען דורך לינגקט רשימות. און אַזוי אין דעם זינען, איר גייז קענען זען מין פון ווי דאַטן סטראַקטשערז אַז מיר ווע שוין באַשטעטיקן ביז אַהער ווי אַ ראָזשינקע לינגקט רשימה מין פון קענען קומען צוזאַמען אין איין. און דעמאָלט איר קענען מאַכן ווייַט מער עפעקטיוו דאַטע סטראַקטשערז וואָס קענען שעפּן גרעסערע אַמאַונץ פון דאַטע, אַז דינאַמיקאַללי רעסיזע דיפּענדינג אויף דיין דאַרף. אַלעמען קלאָר? אַלעמען מין פון קלאָר אויף וואָס כאַפּאַנז דאָ? אויב איך געוואלט צו ינסערט-- וואָס ס אַ פרוכט אַז סטאַרץ מיט, איך טאָן ניט וויסן, ב, אנדערע ווי יאַגדע, באַנאַנע. וילעם: בלאַקקבעררי. אַנדי פּענג: אָזשעניצע, בלאַקקבעררי. וואו טוט אָזשעניצע גיין דאָ? נו, מיר אַקטשאַוואַלי האָבן נישט אויסגעשטעלט דעם נאָך, אָבער טיערעטיקאַלי אויב מיר געוואלט צו האָבן דעם אין אַלפאַבעטיקאַל סדר, ווו זאָל אָזשעניצע גיין? וילעם: [ינאָדאַבאַל] אַנדי פּענג: עקסאַקטלי, נאָך דאָ, רעכט? אבער זינט עס ס זייער שווער צו רעאָרדער-- איך טרעפן עס ס אַרויף צו איר גייז. איר גייז קענען טאָוטאַלי ינסטרומענט וועלכער איר ווילן. די מער עפעקטיוו וועג פון טאן דעם טאָמער וואָלט זיין צו סאָרט דיין לינגקט רשימה אין אַלפאַבעטיקאַל סדר, און אַזוי ווען איר ניטאָ ינסערטינג זאכן, איר ווילן צו זיין זיכער צו טאָן זיי אין אַלפאַבעטיקאַל סדר אַזוי אַז דעמאָלט ווען איר ניטאָ טריינג צו זוכן זיי, איר טאָן ניט האָבן צו דורך אַלץ. איר וויסן פּונקט ווו עס איז, און עס ס גרינגער. אבער אויב איר טיפּ פון האָבן דאס ינטערספּערסט ראַנדאַמלי, איר ניטאָ נאָך געגאנגען צו האָבן צו דורך עס עניווייז. און אַזוי אויב איך געוואלט צו נאָר אַרייַנלייגן אָזשעניצע דאָ און איך געוואלט צו זוכן עס, איך וויסן, טאַקע, אָזשעניצע מוזן אָנהייבן מיט די אינדעקס פון 1, אַזוי איך וויסן ינסטאַנטאַניאַסלי נאָר זוכן בייַ 1. און דעמאָלט איך קענען מין פון דורך די לינגקט רשימה ביז איך באַקומען צו אָזשעניצע, און טהענ-- יאָ? וילעם: אויב איר ניטאָ טריינג צו קרעאַטע-- איך טרעפן ווי דעם איז אַ זייער פּשוט האַש פֿונקציע. און אויב מיר געוואלט צו טאָן קייפל Layers פון אַז ווי, גוט, מיר ווילן צו שיידן זיך ווי אַלע די אַלפאַבעטיקאַל אותיות און דעמאָלט ווידער צו ווי אנדערן שטעלן פון אַלפאַבעטיקאַל אותיות ין אַז, זענען מיר פּאַטינג ווי אַ האַש טיש ין אַ האַש טיש, אָדער ווי אַ פֿונקציע ין אַ פֿונקציע? אָדער איז טהאַט-- אַנדי פּענג: אזוי דיין האַש פונקטיאָנ-- דיין האַש טיש קענען זיין ווי גרויס ווי איר ווילן עס צו. אַזוי אין דעם זינען, איך געדאַנק עס איז זייער גרינג, זייער פּשוט פֿאַר מיר צו נאָר סאָרט באזירט אויף אותיות פון דער ערשטער וואָרט. און אַזוי עס ס נאָר 26 אָפּציעס. איך קענען נאָר באַקומען 26 אָפּציעס פון 0-25 ווייַל זיי קענען בלויז אָנהייבן פון א צו זי אבער אויב איר געוואלט צו לייגן, טאָמער, מער קאַמפּלעקסיטי אָדער Faster לויפן צייַט צו אייער האַש טיש, איר לעגאַמרע קענען טאָן אַלע סאָרץ פון זאכן. איר קענען מאַכן אייער אייגן יקווייזשאַן וואָס גיט איר מער פאַרשפּרייטונג אין דיין ווערטער, דעריבער ווען איר זוכן, עס ס געגאנגען צו זייַן שנעלער. עס ס טאָוטאַלי אַרויף צו איר גייז ווי איר ווילן צו ינסטרומענט אַז. טראַכטן פון עס ווי נאָר באַקאַץ. אויב איך געוואלט צו האָבן 26 באַקאַץ, איך בין געגאנגען צו סאָרט זאכן אין די באַקאַץ. אבער איך בין געגאנגען צו האָבן אַ בינטל פון שטאָפּן אין יעדער עמער, אַזוי אויב איר ווילן צו מאַכן עס Faster און מער עפעקטיוו, לאָזן מיר האָבן אַ הונדערט באַקאַץ. אבער דעמאָלט איר האָבן צו רעכענען אויס אַ וועג צו סאָרט זאכן אַזוי אַז זיי זענען אין די געהעריק עמער זיי זאָל זיין אין. אבער דעמאָלט ווען איר אַקטשאַוואַלי ווילן צו קוקן אין וואָס עמער, עס ס אַ פּלאַץ Faster ווייַל עס ס ווייניקער שטאָפּן אין יעדער עמער. און אַזוי, יאָ, אַז ס אַקשלי די קונץ פֿאַר איר גייז אין פּסעט5 איז אַז איר וועט זיין טשאַלאַדזשד צו נאָר מאַכן וועלכער איז די מערסט עפעקטיוו פֿונקציע איר קענען טראַכטן פון צו זיין קענען צו קראָם און קאָנטראָלירן די וואַלועס. טאָוטאַלי אַרויף צו איר גייז אָבער איר ווילן צו טאָן עס, אָבער אַז ס אַ טאַקע גוט פונט. אַז די מין פון לאָגיק איר ווילן צו אָנהייבן טראכטן וועגן איז, געזונט, וואָס טאָן ניט איך מאַכן מער באַקאַץ. און דעמאָלט איך האָבן צו זוכן ווייניקער זאכן, און דעמאָלט אפֿשר איך האָבן אַ אַנדערש האַש פֿונקציע. יאָ, עס ס אַ פּלאַץ פון וועגן צו טאָן דעם פּסעט, עטלעכע זענען Faster ווי אנדערע. איך בין טאָוטאַלי געגאנגען צו נאָר זען ווי שנעל איז די fastest איר גייז וועט קענען צו באַקומען דיין פֿעיִקייטן צו אַרבעטן. גוט, אַלעמען גוט אויף טשאַינינג און האַש טישן? עס ס אַקטשאַוואַלי ווי אַ זייער פּשוט באַגריף אויב איר טראַכטן וועגן אים. אַלע עס איז איז סעפּערייטינג וועלכער דיין ינפּוץ זענען אין באַקאַץ, סאָרטינג זיי, און דעמאָלט שאַרף די רשימות אַז עס ס פֿאַרבונדן מיט. קיל. אַלע רעכט, איצט מיר האָבן אַ פאַרשידענע סאָרט פון דאַטן סטרוקטור אַז ס גערופֿן אַ בוים. זאל ס גיין אויף און רעדן וועגן טרייז וואָס זענען דיסטינגקטלי אַנדערש, אָבער אין דער זעלביקער קאַטעגאָריע. עססענטיאַללי, אַלע אַ בוים איז אַנשטאָט פון אָרגאַנייזינג דאַטן אין די לינעאַר וועג אַז אַ האַש טיש דאָעס-- איר וויסן, עס ס גאַט אַ שפּיץ און אַ דנאָ און דעמאָלט איר מין פון לינק אַוועק פון יט-- אַ בוים האט אַ העכסט וואָס איר רופן די שורש, און דעמאָלט עס האט בלעטער אַלע אַרום אים. און אַזוי אַלע איר האָבן דאָ איז נאָר די שפּיץ נאָדע אַז פּוינץ צו אנדערע נאָודז, אַז פּוינץ צו מער נאָודז, און אַזוי אויף און אַזוי אַרויס. און אַזוי איר נאָר האָבן ספּליטינג צווייגן. עס ס נאָר אַ אַנדערש וועג פון אָרגאַנייזינג דאַטן, און ווייַל מיר רופן עס אַ בוים, איר גייז דזשוסט-- עס ס נאָר מאַדאַלד אויס צו קוקן ווי אַ בוים. אַז ס וואָס מיר רופן עס ביימער. האַש טיש קוקט ווי אַ טיש. אַ בוים נאָר קוקט ווי אַ בוים. אַלע עס איז איז אַ באַזונדער וועג פון אָרגאַנייזינג נאָודז דיפּענדינג אויף וואָס דיין דאַרף זענען. אַזוי איר האָבן אַ שורש און דעמאָלט איר האָבן בלעטער. דער וועג אַז מיר קענען הויפּט טראַכטן וועגן עס איז אַ ביינערי בוים, אַ ביינערי בוים איז נאָר אַ ספּעציפיש טיפּ פון אַ בוים ווו יעדער נאָדע בלויז פּוינץ צו, אין מאַקס, צוויי אנדערע נאָודז. און אַזוי דאָ איר האָבן בוילעט סימעטריע אין אייער בוים אַז מאכט עס גרינגער צו סאָרט פון קוקן אין וואָס וואַלועס איר זענען ווייַל דעמאָלט איר האָבן שטענדיק אַ לינק אָדער אַ רעכט. עס ס קיינמאָל ווי אַ לינקס דריט פון די לינקס אָדער 1/4 פון די לינקס. עס ס נאָר איר האָבן אַ לינק און אַ רעכט און איר קענען זוכן אָדער פון די צוויי. און אַזוי וואָס איז דאָס נוציק? דער וועג אַז דאָס איז נוצלעך איז אויב איר ניטאָ קוקן צו זוכן דורך וואַלועס, רעכט? אלא ווי ימפּלאַמענטינג ביינערי זוכן אין אַ טעות מענגע, אויב איר געוואלט צו קענען צו אַרייַנלייגן נאָודז און נעמען אַוועק נאָודז בייַ וועט און אויך ופהיטן די זוכן קאַפּאַסיטיעס פון ביינערי זוכן. אַזוי אין דעם וועג, מיר רע סאָרט פון טריקקינג-- געדענקען ווען מיר האט לינגקט רשימות קענען ניט ביינערי זוכן? מיר 'רע מין פון קריייטינג אַ דאַטן סטרוקטור אַז טריקס וואָס אין אַרבעט. און אַזוי ווייַל לינגקט רשימות זענען לינעאַר, זיי נאָר לינק איינער נאָך די אנדערע. מיר קענען מין פון האָבן פאַרשידענע סאָרט פון פּוינטערז אַז פונט צו פאַרשידענע נאָודז וואָס קענען העלפן אונדז מיט זוכן. און אַזוי דאָ, אויב איך געוואלט צו האָבן אַ ביינערי זוכן בוים, איך וויסן אַז מיין מיטן אויב 55. איך בין נאָר געגאנגען צו מאַכן אַז ווי מיין מיטן, ווי מיין שורש, און דעמאָלט איך בין געגאנגען צו האָבן וואַלועס ומדריי אַוועק פון עס. אזוי דאָ, אויב איך בין געגאנגען צו זוכן פֿאַר די ווערט פון 66, איך קענען אָנהייבן בייַ 55. עס ס 66 גרעסער ווי 55? יא עס איז, אַזוי איך וויסן איך מויז זוכן איך N די רעכט טייַטל פון דעם בוים. איך גיין צו 77. גוט, איז 66 ווייניקער ווי אָדער גרעסער ווי 77? עס ס ווייניקער ווי, אַזוי איר וויסן, טאַקע, אַז האט צו זיין די לינק נאָדע. און אַזוי דאָ מיר רע מין פון פּראַזערווינג אַלע פון ​​די גרויס זאכן וועגן ערייז, אַזוי ווי דינאַמיש רעסיזינג פון אַבדזשעקס, ווייל קענען צו טאָן און ויסמעקן ביי וועט, אָן ווייל צו זאָרג וועגן דעם פאַרפעסטיקט סומע פון ​​פּלאַץ. מיר נאָך ופהיטן אַלע פון די ווונדערלעך זאכן בשעת אויך ווייל קענען צו ופהיטן די קלאָץ און זוכן צייַט פון ביינערי זוכן אַז מיר זענען בלויז ביז אַהער קענען צו באַקומען אַ פראַזע. קיל דאַטע ביניען, מין פון קאָמפּלעקס צו ינסטרומענט, די נאָדע. ווי איר קענען זען, אַלע עס איז די סטרוקט פון די נאָדע איז אַז איר האָבן אַ לינק און אַ רעכט טייַטל. אַז ס אַלע עס איז. אַזוי אלא ווי נאָר בעת אַ רענטגענ אָדער אַ פֿריִערדיקע. איר האָבן אַ לינק אָדער אַ רעכט, און דעמאָלט איר קענען מין פון לינק זיי צוזאַמען אָבער איר אַזוי קלייַבן. גוט, מיר רע טאַקע געגאנגען נאָר נעמען אַ ביסל מינוט. אַזוי מיר רע געגאנגען צו גיין צוריק דאָ. ווי איך געזאגט ביז אַהער, איך מין פון דערקלערט די לאָגיק הינטער ווי מיר וואָלט זוכן דורך דעם. מיר רע געגאנגען צו פּרובירן פּסעודאָקאָדינג דעם אויס צו זען אויב מיר קענען מין פון צולייגן די זעלביקער לאָגיק פון ביינערי זוכן צו אַ אַנדערש טיפּ פון דאַטן סטרוקטור. אויב איר גייז ווילן צו נעמען ווי אַ פּאָר מינוט צו נאָר טראַכטן וועגן דעם. קעשורע. אַלע רעכט, איך בין געגאנגען צו אַקטשאַוואַלי נאָר געבן איר טהע-- ניט, מיר וועט רעדן וועגן די פּסעודאָקאָדע ערשטער. אַזוי טוט ווער עס יז ווילן צו געבן אַ שטעכן אין וואָס דער ערשטער זאַך איר ווילן צו טאָן ווען איר ניטאָ סטאַרטינג אויס שאַרף איז? אויב מיר ניטאָ קוקן פֿאַר די ווערט פון 66, וואָס ס דער ערשטער זאַך מיר ווילן צו טאָן אויב מיר ווילן צו ביינערי זוכן דעם בוים? וילעם: איר ווילן צו קוקן רעכט און קוק לינקס און זען [ינאָדאַבאַל] גרעסערע נומער. אַנדי פּענג: יאָ, פּונקט. אַזוי איר ניטאָ געגאנגען צו קוקן אין דיין שורש. עס ס גורל פון וועגן איר קענען רופן עס, דיין פאָטער נאָדע מענטשן זאָגן. איך ווי צו זאָגן שורש ווייַל אַז ס ווי די שורש פון די בוים. איר רע געגאנגען צו קוקן אין דיין שורש נאָדע, און איר ניטאָ געגאנגען צו זען איז 66 גרעסער ווי אָדער ווייניקער ווי 55. און אויב עס ס גרעסער ווי, געזונט, עס איז גרעסער ווי, ווו טאָן מיר ווילן צו קוקן? וואו טאָן מיר ווילן צו זוכן איצט, רעכט? מיר ווילן צו זוכן די רעכט העלפט פון דעם בוים. אַזוי מיר האָבן, קאַנוויניאַנטלי, אַ טייַטל אַז ווייזט צו די רעכט. און אַזוי דעמאָלט מיר קענען שטעלן אונדזער נייַ שורש צו זיין 77. מיר קענען נאָר גיין צו וואוהין די טייַטל איז פּוינטינג. נו, טאַקע, דאָ מיר ניטאָ סטאַרטינג ביי 77, און מיר קענען נאָר טאָן דעם רעקורסיוועלי ווידער און ווידער. אין דעם וועג, איר מין פון האָבן אַ פֿונקציע. איר האָבן אַ וועג פון שאַרף אַז איר קענען נאָר איבערחזרן איבער און איבער און איבער, דיפּענדינג אויף ווו איר ווילן צו קוקן ביז איר יווענטשאַוואַלי באַקומען צו די ווערט אַז איר ניטאָ שאַרף פֿאַר. מאַכן זינען? איך בין וועגן צו ווייַזן איר די פאַקטיש קאָד, און עס ס אַ פּלאַץ פון קאָד. ניט דאַרפֿן צו freak out. מיר וועט רעדן דורך עס. אַקטואַללי, ניט. וואָס איז געווען פּונקט פּסעודאָקאָדע. גוט, וואָס איז געווען פּונקט די פּסעודאָקאָדע, וואָס איז אַ ביסל קאָמפּליצירט, אָבער עס ס טאָוטאַלי פייַן. אַלעמען ווייַטערדיק צוזאמען דאָ? אויב די שורש איז נאַל, צוריקקומען פאַלש ווייַל אַז מיטל איר טאָן ניט אַפֿילו האָבן עפּעס דאָרט. אויב שורש N איז דער ווערט, אַזוי אויב עס כאַפּאַנז צו זיין די איין איר ניטאָ קוקן בייַ, דעמאָלט איר ניטאָ געגאנגען צו צוריקקומען אמת ווייַל איר וויסן איר אז עס. אבער אויב די ווערט איז ווייניקער ווי שורש פון N, איר ניטאָ געגאנגען צו זוכן די לינקס קינד אָדער די לינקס בלאַט, וועלכער איר ווילן צו רופן עס. און אויב די ווערט איז גרעסער ווי וואָרצל, איר ניטאָ געגאנגען צו זוכן די רעכט בוים, דעמאָלט נאָר לויפן די פֿונקציע דורך זוכן ווידער. און אויב שורש איז נאַל, אַז אַז מיטל איר ווע ריטשט די סוף? אַז מיטל איר האָבן קיין מער מער בלעטער צו זוכן, דעמאָלט איר וויסן, טאַקע, איך טרעפן עס ס ניט אין דאָ ווייַל נאָך איך ווע געקוקט דורך די גאנצע זאַך און עס ס ניט דאָ, עס נאָר זאל ניט זיין דאָ. טוט וואָס מאַכן זינען צו יעדער יינער? אַזוי עס ס ווי ביינערי זוכן פּראַזערווינג די קייפּאַבילאַטיז פון לינגקט רשימות. קיל, און אַזוי די רגע טיפּ פון דאַטן סטרוקטור איר גויס קענען פּרובירן ימפּלאַמענטינג אויף דיין פּסעט, איר נאָר האָבן צו קלייַבן איין אופֿן. אבער טאָמער אַן אנדער ברירה אופֿן צו די האַש טיש איז וואָס מיר רופן אַ טריע. אַלע אַ טריע איז איז אַ ספּעציפיש טיפּ פון בוים וואָס האט וואַלועס אַז גיין צו אנדערע וואַלועס. אזוי אַנשטאָט פון בעת ​​אַ ביינערי בוים אין דעם זינען אַז בלויז איין זאַך קענען פונט צו צוויי, איר קענען האָבן איין זאַך פונט צו פילע, פילע זאכן. איר יסענשאַלי האָבן ערייז ין פון וואָס איר קראָם פּוינטערז אַז פונט צו אנדערע ערייז. אזוי די נאָדע פון ​​ווי מיר וואָלט דעפֿינירן אַ טריע איז מיר ווילן צו האָבן אַ באָאָלעאַן, C וואָרט, רעכט? אזוי די נאָדע איז באָאָלעאַן ווי אמת אָדער פאַלש, ערשטער פון אַלע אין די קאָפּ פון אַז מענגע, איז דאָס אַ וואָרט? צווייטנס, איר ווילן צו האָבן פּוינטערז צו וועלכער די מנוחה פון זיי זענען. א ביסל קאָמפּליצירט, אַ ביסל אַבסטראַקט, אָבער איך וועט דערקלערן וואָס אַז אַלע מיטל. אַזוי דאָ, אין די שפּיץ, אויב איר האָבן אַ מענגע דערקלערט שוין, אַ נאָדע ווו איר האָבן אַ באָאָלעאַן ווערט סטאָרד אין די פראָנט וואָס דערציילט איר איז דאָס אַ וואָרט? איז דאָס ניט אַ וואָרט? און דעמאָלט איר האָבן די מנוחה פון דיין מענגע אַז אַקטשאַוואַלי סטאָרז אַלע די פּאַסאַבילאַטיז פון וואָס עס קען זיין. אַזוי, למשל, ווי אין די שפּיץ איר האָבן דער ערשטער זאַך אַז זאגט אמת אָדער פאַלש, יאָ אָדער ניט, דעם איז אַ וואָרט. און דעמאָלט איר האָבן 0 דורך 26 פון די אותיות אַז איר קענען קראָם. אויב איך געוואלט צו זוכן דאָ פֿאַר פלעדערמויז, איך גיין צו די שפּיץ און איך קוק פֿאַר בי איך געפֿינען ב אין מיין מענגע, און אַזוי איך וויסן, גוט, איז ב אַ וואָרט? בייטן איז ניט אַ וואָרט, אַזוי אַזוי איך מוזן האַלטן שאַרף. איך גיין פון ב, און איך קוק צו די טייַטל אַז ב פּוינץ צו און איך זען אן אנדער מענגע פון ​​אינפֿאָרמאַציע, דער זעלביקער ביניען אַז מיר האבן פריער. און הערע-- טאַקע, די ווייַטער בריוו אין [ינאָדאַבאַל] איז יי אזוי מיר קוקן אין וואָס מענגע. מיר געפֿינען די אַכט ווערט, און דעמאָלט מיר קוקן צו זען, טאַקע, היי, איז אַז אַ וואָרט, איז ב-א אַ וואָרט? עס איז ניט אַ וואָרט. מיר 'ווע גאַט צו האַלטן קוקן. און אַזוי דעמאָלט מיר קוקן צו ווו די טייַטל פון א ווייזט, און עס ווייזט צו אן אנדער וועג אין וואָס מיר האָבן מער ווערט סטאָרד. און יווענטשאַוואַלי, מיר באַקומען צו ב-א-ג, וואָס איז אַ וואָרט. און אַזוי די ווייַטער צייַט איר קוקן, איר ניטאָ געגאנגען צו האָבן אַז טשעק פון, יאָ, דעם באָאָלעאַן פונקציאָנירן איז אמת. און אַזוי אין דעם זינען מיר ניטאָ מין ווייל אַ בוים מיט ערייז. אַזוי דעמאָלט איר קענען מין פון זוכן אַראָפּ. אלא ווי כאַשינג אַ פֿונקציע און אַסיינינג וואַלועס דורך לינגקט רשימה, איר קענען נאָר ינסטרומענט אַ טריע אַז אָנפֿרעגן דאָוונוואָרדס. טאַקע, טאַקע קאָמפּליצירט שטאָפּן. ניט גרינג צו טראַכטן וועגן ווייַל איך בין ווי ספּיטינג אַזוי פילע דאַטן סטראַקטשערז אויס אין איר, אָבער טוט אַלעמען מין פון פֿאַרשטיין ווי דער לאָגיק פון דעם אַרבעט? גוט, אָפּקילן. אַזוי בייטן-א-ג, און דעמאָלט איר 'רע געגאנגען צו זוכן. די ווייַטער צייַט איר ניטאָ געגאנגען צו זען, טאַקע, היי, עס ס אמת, אַזוי איך וויסן דעם מוזן זיין אַ וואָרט. זעלבע זאַך פֿאַר זאָאָלאָגישער גאָרטן. אַזוי דאָ ס דער זאַך רעכט איצט, אויב מיר געוואלט צו זוכן פֿאַר גאָרטן, רעכט איצט, איצט זאָאָלאָגישער גאָרטן איז נישט אַ וואָרט אין אונדזער ווערטערבוך ווייַל, ווי איר גייז קענען זען, די ערשטער אָרט אַז מיר האָבן אַ באָאָלעאַן צוריקקומען אמת איז אין די סוף פון Zoom. מיר האָבן ז-אָ-אָ-עם. און אַזוי דאָ, מיר טאָן ניט טאַקע האָבן די וואָרט, זאָאָלאָגישער גאָרטן, אין אונדזער ווערטערבוך מחמת דעם טשעק קעסטל איז ניט אָפּגעשטעלט. אַזוי די קאָמפּיוטער טוט ניט וויסן אַז זאָאָלאָגישער גאָרטן איז אַ וואָרט ווייַל די וועג וואָס מיר ווע סטאָרד עס, נאָר אַ Zoom דאָ אַקשלי האט אַ באָאָלעאַן ווערט אַז ס שוין אויסגעדרייט אמת. אַזוי אויב מיר ווילן צו אַרייַנלייגן די וואָרט, זאָאָלאָגישער גאָרטן, אין אונדזער ווערטערבוך, ווי וואָלט מיר גיין וועגן טאן אַז? וואָס טאָן מיר האָבן צו טאָן צו מאַכן זיכער אונדזער קאָמפּיוטער ווייסט אַז ז-אָ-אָ איז אַ וואָרט און נישט דער ערשטער וואָרט איז ז-אָ-אָ-עם? וילעם: [ינאָדאַבאַל] אַנדי פּענג: עקסאַקטלי, מיר ווילן צו מאַכן זיכער אַז דאָס דאָ, אַז באָאָלעאַן ווערט איז אָפּגעשטעלט אַוועק אַז עס ס אמת. ז-אָ-אָ, דעמאָלט מיר רע געגאנגען צו קאָנטראָלירן אַז, אַזוי מיר וויסן פּונקט, היי, זאָאָלאָגישער גאָרטן איז אַ וואָרט. איך בין געגאנגען צו דערציילן די קאָמפּיוטער אַז עס ס אַ וואָרט אַזוי אַז ווען די קאָמפּיוטער טשעקס, עס ווייסט אַז זאָאָלאָגישער גאָרטן איז אַ וואָרט. ווייַל געדענקען אַלע די דאַטע סטראַקטשערז, עס ס זייער גרינג פֿאַר אונדז צו זאָגן, טאַקע, פלעדערמויז ס אַ וואָרט. זאָאָלאָגישער גאָרטן ס אַ וואָרט. Zoom ס אַ וואָרט. אבער ווען איר ניטאָ בנין עס, די קאָמפּיוטער האט קיין געדאַנק. אזוי איר האָבן צו זאָגן עס פּונקט אין וואָס פונט איז דאָס אַ וואָרט? אין וואָס פונט איז עס ניט אַ וואָרט? און אין וואָס פונט טאָן איך דאַרפֿן צו זוכן זאכן, און אין וואָס פונט טאָן איך דאַרפֿן צו גיין ווייַטער? אַלעמען קלאָר פון וואָס? קיל. און אַזוי דעמאָלט קומט די פּראָבלעם פון ווי וואָלט מיר גיין וועגן ינסערטינג עפּעס אַז ס אַקשלי ניט עס? אַזוי לאָזן ס נאָר זאָגן מיר ווילן צו אַרייַנלייגן די וואָרט, וואַנע, אין אונדזער טריע. ווי איר גייז קענען זען ווי איצט אַלע מיר האָבן איצט איז ב-א-ה, און דעם נייַ דאַטן סטרוקטור עס האט אַ פּינט אַז שפּיציק צו נאַל ווייַל מיר יבערנעמען אַז, טאַקע, עס ס קיין ווערטער נאָך ב-א-ה, וואָס טאָן מיר דאַרפֿן צו האַלטן ווייל זאכן נאָך וואָס טי אבער די פּראָבלעם ערייזאַז אויב מיר טאָן איר ווילן צו האָבן אַ וואָרט וואָס קומט נאָך די ה ס. אויב איר האָבן וואַנע, איר ניטאָ געגאנגען צו ווילן אַ ה רעכט. און אַזוי די וועג מיר רע געגאנגען צו טאָן אַז איז מיר רע געגאנגען צו מאַכן אַ באַזונדער נאָדע. מיר ניטאָ ניט אַלאַט וועלכער סומע פון זיקאָרן פֿאַר דעם נייַ מענגע, און מיר רע געגאנגען צו רעאַססיגן פּוינטערז. מיר רע געגאנגען צו באַשטימען די ה, ערשטער פון אַלע, דעם נאַל, מיר רע געגאנגען צו באַקומען באַפרייַען פון. מיר ניטאָ געגאנגען צו האָבן די ה פונט אַרונטער. אויב מיר זען אַ ה, מיר ווילן עס צו גיין צו ערגעץ אַנדערש. אין דאָ, מיר קענען דעמאָלט טשעק אַוועק יאָ. אויב מיר שלאָגן אַ ה נאָך די ה, טאַקע, דעמאָלט מיר וויסן אַז דאָס איז אַ וואָרט. די באָאָלעאַן איז געגאנגען צו צוריקקומען אמת. אַלעמען קלאָר אויף ווי אַז געשען? קעשורע. אזוי יסענשאַלי, אַלע פון די דאַטע סטראַקטשערז אַז מיר ווע ניטאָ איבער הייַנט, איך ווע ניטאָ איבער זיי טאַקע, טאַקע געשווינד און נישט אין צו פיל דעטאַל, און אַז ס גוט. אַמאָל איר אָנהייבן מעסינג מיט עס, איר וועט זיין בעכעסקעם שפּור פון ווו אַלע די פּוינטערז זענען, וואָס ס 'געגאנגען אויף אין דיין דאַטן סטראַקטשערז, און סעטעראַ. זיי וועט זיין זייער נוציק, און עס ס אַרויף צו איר גויס צו טאָוטאַלי רעכענען אויס ווי איר ווילן צו ינסטרומענט זאכן. און אַזוי פּסעט4, פון 5-- טאַקע, אַז איז פאַלש. פּסעט5 איז מיסספּעללינגס. ווי איך געזאגט פריער, איר ניטאָ געגאנגען צו, אַמאָל ווידער, אָפּלאָדירן מקור קאָד פון אונדז. עס ס געגאנגען צו זיין דרייַ הויפּט זאכן איר וועט זיין דאַונלאָודינג. איר וועט אָפּלאָדירן דיקשאַנעריז, קערס, און טעקסץ. אַלע יענע זאכן זענען ביסט אָדער דיקשאַנעריז פון ווערטער אַז מיר ווילן איר צו קאָנטראָלירן אָדער פּרובירן פון אינפֿאָרמאַציע אַז מיר וועלן איר צו רעגע טשעק. און אַזוי די דיקשאַנעריז מיר געבן איר זענען געגאנגען צו געבן איר פאַקטיש ווערטער וואָס מיר ווילן איר צו קראָם יז אין אַ וועג אַז ס מער עפעקטיוו ווי אַ מענגע. און דעריבער די טעקסטן זענען געגאנגען צו זיין וואָס מיר ניטאָ אַסקינג איר צו רעגע טשעק צו מאַכן זיכער אַלע די ווערטער עס זענען פאַקטיש ווערטער. און אַזוי די דרייַ בלאַקס פון מגילה אַז מיר וועט געבן איר זענען גערופֿן דיקטיאָנאַרי.ק, דיקטיאָנאַרי.ה, און ספּעללער.ק. און אַזוי אַלע דיקטיאָנאַרי.ק טוט איז וואָס איר ניטאָ געבעטן צו ינסטרומענט. עס לאָודז ווערטער. עס רעגע טשעקס זיי, און עס מאכט זיכער אַז אַלץ איז ינסערטאַד רעכט. דיקטיאָנ.ה איז נאָר אַ ביבליאָטעק טעקע אַז דערקלערט אַלע די פֿעיִקייטן. און ספּעללער.ק, מיר רע געגאנגען צו געבן איר. איר טאָן ניט דאַרפֿן צו מאָדיפיצירן קיין פון עס. כל ספּעללער.ק טוט איז נעמען אַז, לאָודז עס, טשעקס די גיכקייַט פון עס, טעסץ די בענטשמאַרק פון ווי ווי געשווינד איר ניטאָ קענען צו טאָן זאכן. עס ס אַ ספּעללער. נאָר טאָן ניט באַלאַגאַן מיט אים, אָבער מאַכן זיכער איר פֿאַרשטיין וואָס עס ס טאן. מיר נוצן אַ פֿונקציע גערופֿן געטרוסאַגע אַז טעסץ די פאָרשטעלונג פון דיין רעגע קאָנטראָליאָר. כל עס טוט איז בייסיקלי פּרובירן די צייַט פון אַלץ אין דיין ווערטערבוך, אַזוי מאַכן זיכער איר פֿאַרשטיין עס. זיין אָפּגעהיט צו נישט באַלאַגאַן מיט אים אָדער אַנדערש דאס וועט נישט לויפן רעכט. און די פאַרנעם פון דעם אַרויסרופן איז פֿאַר איר גייז צו טאַקע מאָדיפיצירן דיקטיאָנאַרי.ק. מיר ניטאָ געגאנגען צו געבן איר 140.000 ווערטער אין אַ ווערטערבוך. מיר ניטאָ געגאנגען צו געבן איר אַ טעקסט טעקע וואָס האט די ווערטער, און מיר ווילן איר צו קענען צו אָרגאַניזירן זיי אין אַ האַש טיש אָדער אַ טריע ווייַל ווען מיר פרעגן איר צו רעגע טשעקק-- ימאַדזשאַן אויב איר ניטאָ רעגע טשעק ווי האָמער ס אָדיססיי. עס ס ווי דעם ריזיק, ריזיק פּרובירן. ימאַדזשאַן אויב יעדער איין וואָרט איר האט צו קוקן דורך אַ מענגע פון ​​140,000 וואַלועס. וואָס וואָלט נעמען אויף אייביק פֿאַר דיין מאַשין צו לויפן. אַז איז וואָס מיר ווילן צו אָרגאַניזירן אונדזער דאַטע אין מער עפעקטיוו דאַטע סטראַקטשערז אַזאַ ווי אַ האַש טיש אָדער אַ טריע. און דעמאָלט איר גייז קענען מין פון ווען איר זוכן צוטריט זאכן מער לייכט און מער געשווינד. און אַזוי זיין אָפּגעהיט צו האַלטן קאַליזשאַנז. איר רע געגאנגען צו באַקומען אַ בינטל ווערטער פון אַז אָנהייבן מיט יי איר רע געגאנגען צו באַקומען אַ בינטל ווערטער אַז אָנהייבן מיט בי אַרויף צו איר גויס ווי איר ווילן צו האַלטן עס. טאָמער עס ס מער עפעקטיוו האַש פֿונקציע ווי נאָר דער ערשטער בריוו פון עפּעס, און אַזוי אַז ס אַרויף צו איר גייז צו מין פון טאָן וועלכער איר ווילן. אפֿשר איר ווילן צו לייגן אַלע די אותיות צוזאַמען. אפֿשר איר ווילן צו ווי טאָן טשודנע דאס צו חשבון די נומער פון אותיות, וועלכער. אַרויף צו איר גייז ווי איר ווילן צו טאָן. אויב איר ווילן צו טאָן אַ האַש טיש, אויב איר ווילן צו פּרובירן אַ טריע, טאָוטאַלי אַרויף צו איר. איך וועל וואָרענען איר פאָרויס פון צייַט אַז די טריע איז טיפּיקלי אַ ביסל מער שווער נאָר ווייַל עס ס אַ פּלאַץ מער פּוינטערז צו האַלטן שפּור פון. אבער טאָוטאַלי אַרויף צו איר גייז. עס ס העט מער עפעקטיוו אין רובֿ ינסטאַנסיז. איר ווילן צו טאַקע קענען צו האַלטן שפּור פון אַלע פון ​​אייער פּוינטערז. ווי טאָן די זעלבע זאַך אַז איך איז געווען טאן דאָ. ווען איר ניטאָ טריינג צו אַרייַנלייגן וואַלועס אין אַ האַש טיש אָדער ויסמעקן, מאַכן זיכער אַז איר ניטאָ טאַקע בעכעסקעם שפּור פון ווו אַלץ איז ווייַל עס ס טאַקע גרינג פֿאַר אויב איך בין טריינג צו אַרייַנלייגן ווי די וואָרט, אַנדי. זאל ס נאָר זאָגן אַז ס אַ פאַקטיש וואָרט, די וואָרט, אַנדי, אין אַ ריז רשימה פון א ווערטער. אויב איך נאָר פּאַסירן צו רעאַססיגן אַ טייַטל אומרעכט, אָאָפּס, עס גייט די ינטייערטי פון די מנוחה פון מיין לינגקט רשימה. איצט דער נאָר וואָרט איך האָבן איז אַנדי, און איצט אַלע פון ​​די אנדערע ווערטער אין די ווערטערבוך האָבן שוין פאַרפאַלן. און אַזוי איר ווילן צו מאַכן זיכער איר האַלטן שפּור פון אַלע פון ​​אייער פּוינטערז אָדער אַנדערש איר ניטאָ געגאנגען צו באַקומען ריזיק פּראָבלעמס אין אייער קאָד. ציען דאס אויס Carefully שריט דורך שריט. עס מאכט עס אַ פּלאַץ גרינגער צו טראַכטן פון. און לאַסטלי, איר ווילן צו קענען צו פּרובירן דיין פאָרשטעלונג פון דיין פּראָגראַם אויף די גרויס ברעט. אויב איר גייז נעמען אַ קוק אין קס50 רעכט איצט, מיר האָבן וואָס ס גערופֿן די גרויס ברעט. עס איז די כעזשבן בויגן פון די fastest רעגע קאָנטראָלירונג מאל אַריבער אַלע פון ​​קס50 רעכט איצט, איך טראַכטן די שפּיץ ווי 10 מאל איך טראַכטן אַכט פון זיי זענען שטעקן. מיר טאַקע ווילן איר גייז צו שלאָגן אונדז. כל פון אונדז זענען טריינג צו ינסטרומענט די fastest קאָד ווי מעגלעך. מיר ווילן איר גויס צו פּרובירן צו אַרויסרופן אונדז און ינסטרומענט Faster ווי אַלע פון ​​אונדז קענען. און אַזוי דאָס איז טאַקע דער ערשטער מאָל אַז מיר ניטאָ אַסקינג איר גייז צו טאָן אַ פּסעט אַז איר קענען טאַקע טאָן אין וועלכער אופֿן איר ווילן. איך שטענדיק זאָגן, דאָס איז מער קרויוויש צו אַ פאַקטיש-לעבן לייזונג, רעכט? איך זאָגן, היי, איך דאַרפֿן איר צו טאָן דעם. בויען אַ פּראָגראַם וואס טוט דעם פֿאַר מיר. צי עס אָבער איר ווילן. איך נאָר וויסן אַז איך ווילן צו שנעל. אַז ס 'דיין אַרויסרופן פֿאַר דעם וואָך. איר גויס, מיר רע געגאנגען צו געבן איר אַ אַרבעט. מיר ניטאָ געגאנגען צו געבן איר אַ אַרויסרופן. און דעמאָלט עס ס אַרויף צו איר גייז צו גאָר נאָר רעכענען אויס וואָס ס די קוויקיסט און רובֿ עפעקטיוו וועג צו ינסטרומענט דעם. יאָ? וילעם: ביסט מיר ערלויבט צו אויב געוואלט צו פאָרשונג Faster וועגן צו טאָן האַש טישן אָנליין, קענען מיר טאָן וואָס און ציטירן עמעצער אַנדערש ס קאָד? אַנדי פּענג: יאָ, טאָוטאַלי פייַן. אַזוי אויב איר גייז לייענען די ספּעק, עס ס אַ שורה אין די ספּעק, וואס זאגט איר גויס זענען טאָוטאַלי Free צו פאָרשונג האַש פֿעיִקייטן אויף וואָס זענען עטלעכע פון די קוויקער האַש פֿעיִקייטן צו לויפן זאכן דורך ווי לאַנג ווי איר ציטירן אַז קאָד. אַזוי עטלעכע מענטשן האָבן שוין פיגורעד אויס שנעל וועגן פון טאן רעגע טשעקקערס, פון פעסט וועגן פון סטאָרינג אינפֿאָרמאַציע. טאָוטאַלי אַרויף צו איר גייז אויב איר ווילן צו נאָר נעמען אַז, רעכט? מאַכן זיכער איר ניטאָ סיטינג. די אַרויסרופן דאָ טאַקע אַז מיר רע טריינג צו פּרובירן איז מאכן זיכער אַז איר וויסן דיין וועג אַרום פּוינטערז. ווי ווייַט ווי איר ימפּלאַמענטינג די פאַקטיש האַש פֿונקציע און קומען אַרויף מיט ווי די מאַט צו טאָן אַז, איר גייז קענען פאָרשונג וועלכער מעטהאָדס אָנליין איר גייז ווילן. יאָ? וילעם: קענען מיר ציטירן נאָר דורך ניצן די [ינאָדאַבאַל]? אַנדי פּענג: יאָ. איר קענען נאָר, אין דיין באַמערקונג, איר קענען ציטירן ווי, טאַקע, גענומען פון יאַדאַ, יאַדאַ, יאַדאַ, האַש פֿונקציע. ווער עס יז האָבן קיין שאלות? מיר אַקשלי ברעעזעד דורך אָפּטיילונג הייַנט. איך וועט זיין אַרויף דאָ צו ענטפֿערן שאלות ווי געזונט. אויך, ווי איך געזאגט, אָפיס שעה הייַנט בייַ נאַכט און מאָרגן. די ספּעק דעם וואָך איז אַקשלי יבער גרינג און יבער קורץ צו לייענען. איך וואָלט פֿאָרשלאָגן גענומען אַ קוק, נאָר לייענען דורך די ינטייערטי פון עס. און זאַמילאַ אַקטשאַוואַלי גייט איר דורך יעדער פון די פֿעיִקייטן איר דאַרפֿן צו ינסטרומענט, און אַזוי עס ס זייער, זייער קלאָר ווי צו טאָן אַלץ. נאָר צו מאַכן זיכער איר ניטאָ בעכעסקעם שפּור פון פּוינטערז. דאס איז אַ זייער טשאַלאַנדזשינג פּסעט. עס ס ניט טשאַלאַנדזשינג ווייַל ווי, טאַקע, דעם קאַנסעפּס זענען אַזוי פיל מער שווער, אָדער איר האָבן צו לערנען אַזוי פיל נייַ סינטאַקס די וועג אַז איר האט פֿאַר די לעצטע פּסעט. דעם פּסעט איז שווער ווייַל עס זענען אַזוי פילע פּוינטערז, און דעמאָלט עס ס זייער, זייער גרינג צו אַמאָל איר האָבן אַ זשוק אין אייער קאָד נישט קענען צו געפינען ווו אַז זשוק איז. און אַזוי גאַנץ און גאָר אמונה אין איר גייז צו קענען צו שלאָגן אונדזער [ינאָדאַבאַל] ספּעלינגז. איך אַקטשאַוואַלי האָבן נישט קיין געשריבן מייַן נאָך, אָבער איך בין וועגן צו שרייַבן מייַן. אזוי בשעת איר ניטאָ שרייבן דייַן, איך וועט זיין שרייבן מיין. איך בין געגאנגען צו פּרובירן צו מאַכן מייַן Faster ווי דייַן. מיר וועט זען וואס האט די fastest איינער. און יאָ, איך וועט זען אַלע פון איר גויס דאָ אויף דינסטאג. איך וועל לויפן אַ מין ווי אַ פּסעט וואַרשטאַט. אַלע די סעקשאַנז דעם וואָך זענען פּסעט וואַרשטאַטן, אַזוי איר גייז האָבן גורל פון אַפּערטונאַטיז פֿאַר הילף, אָפיס שעה ווי שטענדיק, און איך טאַקע קוקן פאָרויס צו לייענען אַלע פון ​​דיין גויס 'קאָד. איך האָבן קוויזיז אַרויף דאָ אויב איר גויס ווילן צו קומען באַקומען די. אַז ס אַלע.