פנו אלי בלינקדאין, שלחתי קו"ח ואז הופניתי למבחן ONLINE של 90 דקות עם 2 שאלות קידוד, שאח"כ היה צריך להסביר את הפתרון (כגון סיבוכיות וכו')
לאחר מכן נקבע לי ראיון טלפוני (עם וידאו)
שאלות מתוך הראיון
איך היית מציב במבנה נתונים היררכיה של עובדים, לכל עובד יכול להיות עובדים מתחתיו
להגדיר פונקציות של הדפסה מחיקה והוספה, מה יכול להיות הבעיות ברקורסיה
אם רוצים לגשת לעובד ספציפי עם ID איך לגשת במהירות (אם זה עץ - זה לוקח הרבה זמן)
ראיון ראשוני טלפוני - התבצע בשיחת ווידאו. נדרש לכתוב קוד ולא רק פסודו קוד
שאלות מתוך הראיון
נשאלתי שתי שאלות -
1. פונקציה שמקבלת שני מערכים ממוינים, ומחזירה מה החיתוך ביניהם
2. פונקציה שמקבלת מערך ממוין וסטרים לא ממוין, ומחזירה מה החיתוך ביניהם
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2020
בשאלה הראשונה הפתרון האופטימלי הוא שני אינדקסים, אחד על כל מערך, וכל פעם לקדם אחד מהם. O(n) ריצה, o(1) זכרון
בשאלה השנינ צריך להפוך את המערך ל hashSet. זה ייתן לנו o(n+k( ריצה, כאשר n אורך המערך ו k אורך הסטרים, ו o(n) זכרון
2 ראיונות מקצועיים ואישיים וראיון נוסף מסכם עם מנהל מחלקה
שאלות מתוך הראיון
לשרותך מערך עם N מקומות, פונקציית malloc, free המקצות ומשחררות בייט אחד בלבד.
סיבוכיות O(1) להקצאת זכרון, שחרור ומקום נוסף. ממש את הפונקציות malloc, free
ישנו ראיון אחד ששואלים בעיקר על בעיות דזיין, מתבצע בטלפון. לאחר מכן אם עוברים אז יש יום שלם של ראיונות של חמש שעות כל ראיון שעה עם הפסקות מידי פעם. חייב לבוא עם אנרגיות חדשות כל ראיון, להתכונן טוב על הסיפורים שאמזון דורשים.
שאלות מתוך הראיון
1-לתכנן מערכת שיודעת לשתף תמונה עם Api's השונים שצריך למערכת כזו.
2-ישנן פלטפורמות עם קורדינאטות x,y, סופר מריו נמצא באחת הפלטפורמות והנסיכה בפלטפורמה אחרת, ישנן שתי אפשרויות או שיש סולם בין הפלטפורמות או שהמרחק קצר ןמריו יכול לקפוץ. כל מעבר בין פלטפורמות היא יחידת זמן, צריך לתכנן אלגוריתם שימצא את הזמן המינימלי למריו להגיע לנסיכה או להחזיר בלתי אפשרי אם אין מסלול כזה.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2020
2- הצעתי רדוקציה לגרף ו-BFS, אם הפלטפורמה של הנסיכה עם מרחק\זמן אין סוף אז היא לא נגישה אחרת לוקחים את הערך הנתון.
לגבי שאלה 1 לא בטוח שהפתרון נכון.
זה היה ראיון טלפוני, אני הייתי צריכה להתקשר.
בהתחלה המראיין הסביר לי על התפקיד שאליו התראיינתי.
אח"כ עברנו בגדול על הקורות חיים שלי, הוא רצה שאני אספר לו על עצמי.
אח"כ הוא שאל שאלה לא מאד מסובכת שהייתי צריכה לפתור בקונסול שלהם והוא ראה את זה בלייב. אפשר היה לעשות באיזה שפה שרוצים.
אח"כ הוא שאל איך אפשר לשפר את הפתרון, ושאל אותי על כל מיני מקרי קצה.
אח"כ הוא שאל לגביי זמן ריצה.
בסוף הוא הסביר לי איך עובד תהליך הגיוס באמזון, שזה סדרה של ראיונות ביום אחד.
הראיון נמשך בערך שעה.
חזרו אליי יום למחרת במייל שאני לא התקבלתי.
שאלות מתוך הראיון
מקבלים בתור קלט מערך ומספר n.
צריכים לחפש במערך תת מערך בגודל n שהממוצע שלו הוא הגדול ביותר, ולהחזיר את הממוצע.
לדוגמא: [1,5,3,4,7] ו- 2.
תת המערך בגודל 2 עם הממוצע הגדול ביותר הוא [4,7], ולכן התשובה היא 5.5 כי זה הממוצע של 4 ו- 7.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2020
יוצרים תור בגודל k (תת המערך) וסכום כאשר כל פעם שנכנס איבר מעבר לk אז מורידים את האחרון בתור
יוני 2020
בנוסף שומרים נתון נוסף את הסכום המקסימלי וכל פעם שמשתנה הסכום בתור (כי מכניסים איבר נוסף ואיבר יוצא במקומו) אז בודקים אם הוא גדול יותר מהסכום המקסימלי
לבסוף מחזירים את הסכום המקסימלי חלקי גודל תת המערך (k)
יוני 2020
זה לא בעצם זהה למציאת n המספרים הגדולים?
ניתן לעשות מיון בינארי logn ואז חישוב על n המספרים הגדולים.
יוני 2020
בקשר לתשובה האחרונה -> המטרה היא למצוא איברים צמודים במערך
אוקטובר 2020
תשובה לשאלה הראשונה בלי תור ושום דבר פשוט יש לוגיקה של sliding window פשוטה , לולאה ראשונה עוברים על ה N הראשונים וסוכמים לתוך משתנה בסוף מחשבים ממוצע ושומרים את הגדול ,
לולאה שניה מתחילה מ N עד אורך הקלט ובכל איטרציה מוסיפים את arr[i] ומורדים את arr[i-n] ובודקים ממוצע זה הכל
זמן של N ומיקום של 1
נובמבר 2020
או שלא הבנתי את השאלה או את התשובה. אבל למה לא פשוט לעשות TOP N? כלומר בעיית מקסימום N פעמים. בהכרח ש-N המקסימליים הממוצע שלהם יהיה הגבוה ביותר. לא?
מרץ 2021
עוד יותר פשוט ובזמן של O(n) אפשר לשמור 2 מצביעים במרחק m (גודל תת המערך) פחות אחד לסכום את המספרים ביניהם ואז לקדם את הימני אחד ימינה ולהוסיף לסכום את המספר שהוא עליו עכשיו ולהוריד מהסכום את המספר שכתוב בשמאלי ואז לקדם גם אותו אחד ימינה. להחזיר את המקסימום של הסכומים חלקי m