Table of Contents
מבנה הנתונים הראשוניים שאתם חייבים לשלוט
כל ראיון טכני בונה על בסיס של מבני נתונים מרכזיים.הבנה לא רק איך הם עובדים, אלא מתי ליישם אותם, מפריד בין מועמדים חזקים לבין ממוצעים.
אריות ו Strings
Arrays הם מבנה הנתונים הבסיסי ביותר, המציע גישה אקראית של O(1) ופריסת זיכרון בולטת.בראיונות, מערךים משמשים לעתים קרובות כעמוד השדרה של בעיות הכרוכות בחלונות מזחלות, טכניקות של שתי נקודות, וסכומים מראש.
- (ב) חלון התפוצה:0 (Sliding window: FLT:1) המשמש לבעיות תת-קרקעיות או מצע (למשל, רצף ארוך יותר ללא דמויות חוזרות).
- (ב) 2 נקודות:0;2 נקודות: 1) פותרים בעיות מערך מכוונות (למשל, שני סכומים, מיכל עם רוב המים) על ידי העברת נקודות משני הקצוות או במהירויות שונות.
- (ב) שינוי:0 (במקום שינוי: 1) בעיות רבות דורשות שינוי מערך ללא מרחב נוסף (למשל, הסרת משוכפלות, העברת אפסים).
עבור מניפולציה מיתרית, שימו לב מיוחד לקידוד אופי (ASCII vs Unicode) ומקרים קצה כמו מיתרים ריקים או חלל לבן.בעיות פרקטיות על FLT:0LeetCode's tagFLT:1 כדי לבנות את השטף.
רשימות קשורות
רשימות מקושרות הן מבנים נתונים דינמיים העולים בהכנסות ומחיקה, אך חסרות גישה אקראית.ראיונות שואלים לעתים קרובות על רשימות מקושרות לשיר, רשימות מקושרות כפולות ורשימות מעגליות.
- (ב) ⁇ :0) ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ :0) ⁇ : 1FLT 1# שימוש באלגוריתם של פלויד ואלגוריתם של אלגוריתם כדי לזהות מחזורים בחלל O(1).
- [01:0] ,[עריכת קוד מקור | עריכה]
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
בעיות ברשימה מקושרות לעתים קרובות מניפולציות נקודתיות ומקרה קצה טיפול (רשימה ריקה, צומת יחיד) לכתוב קוד נקי עם בלוטות ראש דימי כדי לפשט את תנאי הגבול.
⁇ וקוויסוס
סיגנל (LIFO) ו תורים (FIFO) הם סוגי נתונים מופשטים המשמשים באופן נרחב ב parsing, גרף מסלול, ועיצוב אלגוריתם. Variations כמו תורים עדיפות (heaps) ו deque (ה תורים מעודכנים) להוסיף גמישות.
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ :0) , כיוון עבור BFS:FIRLT:1 , רצף של עצים, נתיב קצר ביותר בגרפים לא מעודנים.
- (ב) ערימה:0) ערימה מונוטונית / queue:FreaLT:1 שימושי עבור בעיות כמו אלמנט גדול הבא, ריצוף חלון מקסימלי.
- (FLT:0) תור הסמכות (min-heap / max-heap): מציאת K הגדול/קטן ביותר אלמנטים, מזגו רשימות ממותקים, האלגוריתם של דייקסטרה.
בעת יישום ערימה או תור משלך, שקול להשתמש בערכים או רשימות מקושרות מתחת למכסה ולנתח מורכבות זמן עבור כל פעולה.
שולחן האש
שולחנות האש (hash Maps and hash סטs) מספקים ליד O(1) ממוצע של שעונים, זריקה ומחיקה.הם הם עבודת הכפייה עבור אלגוריתמים יעילים רבים: יישומי מפתח:
- (ב) ,0) תדרי:ראה FLT:1 (ב) בונים מפת תדרים עבור דמויות או מספרים, ולאחר מכן להשתמש בו כדי למצוא לשכפלות, אנגרמה או אלמנטים תכופים ביותר.
- (ב) [15] ,2 בעיות בסגנון: 1FLT: שימוש במפה ישת כדי לאחסן משלים תוך שהוא מאריך דרך מערך.
- (FLT:0)Caching and memoization: FLT:1 , תוצאות של שיחות עבודה יקרות (למשל, בטיול תכנות דינמי).
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
היזהרו עם התנגשות של hash ודן אסטרטגיות (שרשרת לעומת שיחה פתוחה) אם נשאלו גם כי בשפות כמו Python, דיסלקציות ו ערכות מבוססות ישה, כך שתוכלו למנף אותם ישירות.
עצים
עצים הם מבני נתונים היררכיים המופיעים בצורות רבות: עצי בינארי, עצי חיפוש בינאריים (BSTs), עריצים, ניסיונות ועצים מאומנים (AVL, Red-Black)
- (FLT:0) תהלוכות הטראנס:FLT:1 Inorder, preorder, postorder - recursive and Iterative Applications.
- (ב) ,0) פעולות עץ חיפוש: FLT:1 הכנס, למחוק, חיפוש, לבדוק את הנכס BST (הזמנה צריכה להיות מכוונת).
- (ב) קדמון משותף (LCA): LCA: FIRLT:1 עבור עצים בינאריים ו BSTs.
- (ב) ויקרא י"א): "ה' (ב"ד)" (ב"ג, כ"ד) ו"ה' (ב"ב)" (ב"ב)" (ב"ב)
- (בלטינית:0)Trie (עץ הקידומים): "FLT:1" נעשה שימוש ב- Auto Complete, האיות בדיקה ומילים בעיות חיפוש.
בעיות עץ לעתים קרובות כרוכות בטיול, כך לתרגל כתיבת פונקציות פיגוריות נקיות וטיפול במקרים בסיס, גם להבין מושגים איזון עץ ואת ההשפעה שלהם על הביצועים.
Garphs
מערכות יחסים מודל בין גופים וייצוגיות כרשימות דבקות, נטיות אדמדנות, או רשימות קצה. אלגוריתמים גרפיים הליבה שכל מועמד צריך לדעת:
- (FLT:0)BFS ו-DFS:FLT:1 הן שיטות רציפות המשמשות לקישוריות, נתיב קצר יותר (לא מעודן), מיון טופולוגי, וגילוי מחזורים.
- (ב) אלגוריתמים מהירים ביותר: 1 (לא זניחים) (לא זניחים), בלמן-פורד (משקל שלילי מותר), פלויד-וורסלול (כל החולשים).
- (ב) ויקרא י"א: ויקרא י"ד: "ה' ויקרא י"ד:
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ (ה) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
בעיות Graph דורשות לעתים קרובות טיפול זהיר של מדינות ביקר כדי למנוע לולאות אינסופיות.פרקטיקה הופכת תרחישים אמיתיים בעולם (למשל, רשתות חברתיות, מבוך פתרון) לייצוגים של גרפים.
« אלגורית'מים של הקרן להכין את תורו בכבדות
מעבר למבנים נתונים, עליך להיות נוח עם פרדיגמות אלגוריתמיות קלאסיות וזמנם / חלל המסחר-offs.קטגוריות הבאות נבדקות לעתים קרובות בראיונות.
המונחים: Algorithms
בעוד שייתכן שלעולם לא תיישם סוג מותאם אישית בייצור, מיון הוא כלי בסיסי המשמש כ subroutine בבעיות רבות.
- (FLT:0) ,00 (FLT:1) ממוצע O(n log n), הגרוע ביותר O(n2) - במקום אך לא יציב.
- (ב) ⁇ :0 (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) סוגים אחרים: (ראה: ⁇ :0) 1 (O(n+k) עבור טווחים קטנים), דלי, סוג של קורנקס - להבין מתי מיון זמני ליניארי הוא אפשרי.
להיות מוכן לדון יציבות, בטבע במקום, וכיצד לבחור את האלגוריתם הנכון לתסריט מסוים.בנוסף, לתרגל יישום התנגשויות מכוונן עבור נתונים גדולים.
חיפוש אלגוריתמים
חיפוש הוא קריטי עבור שחזור נתונים יעיל.החשוב ביותר הוא חיפוש בינארי, המופיע במגוון רחב של הבדלים:
- חיפושים בינאריים: 0 (FLT:103) חיפוש במערך מסוים - טיפול בשפלות, מצא אירוע ראשון/אחרונה.
- (ב) חיפושים בתשובות: FLT:1 נעשה שימוש כאשר אתה צריך למצוא סף כי משביע מצב (למשל, יכולת קטנה ביותר להעביר חבילות בתוך ימים).
- (ב) חיפוש אחר מדרש (ב"ג) - 1:1 פחות נפוץ, אך שווה הבנה של שלמות.
- (ב) ,0 חיפוש במערך מורכב: FIRLT:1 , בעיה ראיון קלאסית שמבדוק את הבנתך לגבי השחלות של חיפוש בינארי.
המאסטר תבנית החיפוש בינארית ותרגול משנה את תנאי הסיום ועדכונים נקודה.
טיול וחזרה
סיור הוא טכניקה חזקה שבו פונקציה קורא לעצמו לפתור תת-בעיות. Backtracking מרחיבה את הסיור על ידי חקר כל האפשרויות וריצה כאשר מגבלות מופרות.
- [01:0]N-Queens: FLT:1 Place N Queens on an N×N Board ללא התקפות - בעיה של חזרה.
- (ב) ויקרא י"ב: "ה' ימלאו את רשת מלאה חלקית, תוך ציות לחוקים של סודוקו.
- (ב) דור ה-UV, מוטציות, שילובים:FLT:1 יוצר את כל המצע האפשרי, המוטציות, או שילובים של קבוצה.
- (ב) חיפוש מילים:0) ,9 מילים ברשת 2D על ידי העברת אופקית / באופן לא מעשי.
כאשר כותבים פתרונות חוזרים, תמיד מתחילים עם מקרה הבסיס כדי להימנע מטיול אינסופי.עבור מעקב לאחור, להשתמש דפוס "לאפסת מדינה" (למשל, סימן ביקר, תיקון, unmark) תרגול הדמיה של עצי סיור כדי להבין את המורכבות של זמן (לעתים קרובות אקספוננציאלית).
דינמי תכנות
תכנות דינמי (DP) פותר בעיות על ידי שבירה אותן ל subproblems חפיפה ו- אחסון תוצאות.זה אחד הנושאים המבולחים ביותר, אבל שליטה בדפוסים משותפים עוזרת מאוד:
- (ב) ⁇ :0)למעלה (הההפצה): גישה חוזרת ל-1 (בשיתוף פעולה עם צ'נג. Easier) כדי להפיק מיחסי החזרה.
- (ב) [ה]הגישה ההולכת ומתוכננת [ב]: [ה] [ה]] [ה]], היא [הגישה] של בניית שולחן.
- (FLT:0) בעיות DP קלאסיות:FLT:1Build Fibonacciרצף, knapsack (0/1 ו unbounded), תת-השוויון המשותף הארוך ביותר (LCS), העודף הגדל (LIS), שינוי מטבע, מברק שרשרת רב-כפל, לערוך מרחק.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) אופטימיזציה של Space optimization: אנדרלינג 1D DP, צמצום 2D ל 1D כאשר התלויים מאפשרים.
זיהוי בעיות DP על ידי מילות מפתח כמו "מקסימום / מינימלים", "מספר דרכים", "מבנה תת-קרקעי" השתמש ב-FLT:0Educative DP guideFLT:1 for Structure learning.
גנדי אלגורית
אלגוריתמים אפורים עושים בחירות אופטימליות מקומיות בתקווה שהם יובילו לאופטימום גלובליים, הם לעתים קרובות אינטואיטיביים, אך דורשים הוכחה של נכונות.
- (ב) ,0) בחירת ייעוד: 0 (בחירות: 1) בחר מספר מקסימלי של מרווחים שאינם מורדים.
- (ב) ⁇ :0) ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,5 ,5 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) 0 (הופנה מהדף תלמוד ב'): בניגוד ל 0/1 knapsack, יצירות חמדנות כאן כי משקלים הם בלתי ניתנים להפרדה.
- (FLT:0)Jump Game and Gas Station:FreaLT:1) בעיות מרווחות / אופטימיזציה נפתרו בחמדנות.
כאשר אתה ממקח בעיה חמדנית, שאל את עצמך: האם הבחירה המקומית מפחיתה את הבעיה לדוגמה קטנה יותר עם אותו מבנה?אם כן, תאוות בצע עשויה לעבוד גם כן, לשקול מקרים שבהם נכשלים חמדנים (למשל 0/1 knapsack).
גרף אלגורית
אלגוריתמים של גרפ הם מרכזיים לבעיות מורכבות רבות.מעבר לטראנסל, להתמקד:
- (ב) אלגוריתם של אלגוריתם:0Dijkstrastra:FLT:1 O(V +E) , באמצעות תור עדיפות.
- (ב) ויקרא י"א: ויקרא י"ד: ויקרא י"ד, ויקרא י"ד, ויקרא י"ד, ו"ו)
- (ב) ⁇ :0) ,[עריכת קוד מקור | עריכה]
- (FLT:0)Kruskal's and Prim's:cioFLT) 1 אלגוריתמים ראשונים; Croskal משתמשת ב-Union-Find, פריים משתמשים בתור עדיפות.
- (ב) אלגוריתם (FLT:0) ,0 (FLT:1) באמצעות אלגוריתם של קאהן (BFS) או DFS עם הזמנה.
- (ב) אלגוריתם של תהילים:0) , אלגוריתם של קושארו (FLT:1 ).
הבנתם את ה- Dijkstra עובד עבור גרפים צפופים אם ייושמו עם מאטריקס דבקות; עבור גרגרי ספאאר, רשימת דבקות + heap הוא טוב יותר.תרגול הכפלה אלה מאפס מבלי להסתמך על ספריות בנויות.
כיצד לגשת אלגוריתאם עיצוב בראיונות
הידיעה על מבני הנתונים והאלגוריתמים היא רק חצי הקרב.הראיון הוא על הוכחת תהליך פתרון הבעיות שלך. השתמש בגישה מובנת:
- דרישות כפל: 1FLT (ב) שאל על גדלים, מגבלות, סוגי נתונים, ופלט צפוי.
- (FLT:0) דיסקוקוס כוח רוטט: החל מ- 1 (גם אם אינו יעיל) להראות לך את הבעיה.
- (FLT:0)Optimize צעד אחר צעד: אנדרל 1 לזהות צווארי בקבוק לשקול שימוש במבנים נתונים יעילים יותר (מפת אש, ערימה, עצים) או דפוסים אלגוריתמיים (שני נקודות, DP, BFS).
- (FLT:0)Write קוד נקי: 1FLT השתמש בשמות משתנים משמעותיים, מקרים של שימוש (קלט אמפיבי, אלמנט יחיד), ולשמור על סגנון עקבי.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
גישה שיטתית זו לא רק להרשים את המראיין, אלא גם עוזרת לך לתפוס טעויות מוקדם.
מלכודות נפוצות וכיצד להימנע מהם
אפילו מועמדים מנוסים עושים טעויות תחת לחץ.מנעו מהמלכודות הנפוצות הללו:
- [ה]ההתמ"ל: [ה] לא מבדילים את הכוח המבורך.
- (ב) ,0) מקרים של קצה: FLT:1rea תמיד לבדוק עם מערך ריק, אלמנטים בודדים, ערכי אפס וגדלים קיצוניים.
- (ה)הסבר על מורכבות החלל: 1.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.10.
- (בשיתוף:0) ,בשיתוף פעולה: 1FLT לפעמים גישה פשוטה או פשוטה, היא כל מה שאתה צריך.
- (ב) לא לנסח את זה: 1:1 , קידוד שקט הוא דגל אדום.
(ב) ,0) ראיונות על PrampFLT:1 כדי לקבל משוב בזמן אמת ולהימנע מהמכשולים האלה.
מחקר משאבים ותכנית תרגול
עקביות מנצחת את עוצמתה בעת הכנת ראיונות טכניים.כאן תוכנית מדגם:
- (ב) [13] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ :0) ⁇ 3-4: 1FLT 1 Dive לעצים, גרפים, וטבלאות hash. Implement BFS, DFS וטרגורי עץ נפוצים. Solve 2-3 בעיות ביום על ליטקוד או האקר רנק.
- (FLT:0) Weeks 5-606: 1 מאסטר ממיין וחיפוש אלגוריתמים. להתמקד בריאציות חיפוש בינאריות ומיזוג סוג. התחל תכנות דינמי עם בעיות קלאסיות.
- (FLT:0) Weeks 7-8:FLT:1 Tackle נושאים מתקדמים: תבניות DP, אלגוריתמים גרפיים (Dijkstra, Bellman-Ford, MST), חמדנים, מעוקבים אחר עצמם, עושים ראיונות לעג שבועיים.
- [01:0] ⁇ 9-10: 10:5] ראיונות לעג מלא, פתרון בעיות בזמן מוגבל לפתרון בעיות.
השתמש ברשימות בעיות מחוספסות ותכניות לימוד שיטתיות: איכות על פני כמות - הבנה עמוקה של כל בעיה ולא של פתרונות.
מחשבות אחרונות על הכנת ראיון טכני
המאסטר של מבני נתונים ואלגוריתמים הוא מסע, לא קידוד. בנה בסיס מוצק על ידי הבנת מושגי ליבה, לתרגל באופן עקבי, וללמוד מהטעויות שלך. השתמש במשאבים הקשורים במאמר זה כדי להנחות את המחקר שלך, ותמיד לדמות תנאי ראיון אמיתיים.עם תרגול מכוון וגישה מובנית, אתה יכול להתמודד בבטחה אפילו עם השאלות הראיונות הטכניים הקשים ביותר.