2 ראיונות טכניים, במידה ועוברים יש עוד ריאיון עם ראש קבוצה
שאלות מתוך הראיון
ריאיון ראשון: לממש מבנה נתונים שתומך בפעולות:
1. add(int num) - הוספת איבר
2. print_sorted() צריך להדפיס את האיברים במבנה בצורה ממויינת
צריך לממש את זה באמצעות linked_list זה הפתרון המיטבי.
ריאיון שני:
בהינתן stream שמביא מספרים של 32 ביטים (כל אינטגר) צריך לבדוק אם היה מספר כלשהו הופיע פעמיים.
גם פה מימשתי איזה 3 פונקציות עד שהגענו לאופטימזציה. צריך להתייחס לכך שהאיברים הם 32 ביטים ולהבין כמה מקום זה תופס.
הפתרון הופאימלי זה לשמות מערך שבכל תא שלו מדליקים בין אם המספר הופיע. משתמשים פה בביט מינפוליישון.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2021
יש לי רעיון לפיתרון יותר אופטימלי שדומה לPage Walk במערכת הפעלה-
נסתכל על 32 ביט של מספר כמו שמסתכלים על זיכרון וירטואלי: 12 הביטים העליונים יהיו כניסה במערך בגודל 2 בחזקת 12 כפול גודל מבנה שנגדיר.
נגדיר מבנה שמכיל מצביע לבלוק זיכרון (שיאותחל לNULL) ומונה בגודל אינטג'ר שיאותחל ל0.
כשנקבל מספר, נשתמש ב12 הביטים העליונים וניגש למערך שהקצנו (שגודלו בערך 64 קילובייט ויוקצה בזיכרון) ונמצא את המצביע לבלוק שבו יש 2 בחזקת 20 ביטים.
אם המצביע מאותחל לNULL אז נקצה זיכרון דינמי של 2^17 בתים (126 קילובייט), נדליק בו את הביט שה20 ביטים התחתונים מגדירים ונגדיר את המונה ב1.
אם המונה הגיע ל2^20 אז נשחרר את הבלוק ונכתוב במקום המונה מספר שלילי מיוחד שאומר שכל הביטים כבר היו.
אם הגענו והביט כבר דולק אז מצאנו מספר שהיה פעמיים.
הרעיון הוא שלא צריך הרבה זיכרון בשביל זה
ריאון מקוון של 40 דקות וראיון טכני בפלטפורמת codility של שעה ועשרים.
שאלות מתוך הראיון
יש 8 אבנים במשקל זהה ואבן אחת כבדה קצת יותר מהאחרות, סה"כ 9.
יש מאזניים בהם ניתן להניח אבנים על צד ימין ושמאל ולגלות איזה צד כבד יותר.
ניתן לבצע 2 שקילות בלבד, איך מגלים מי האבן הכבדה?
שאלון בית אינטרנטי, באתר "leet-code".
ניתן זמן להתרגל לאתר, ו-80 דקות לביצוע העבודה עצמה.
שאלות מתוך הראיון
1. מערך של מספרים נתון - יש להחזיר true אם יש שני מספרים במערך שההפרש ביניהם הוא 1, ו-false אחרת.
2. נתון מערך של מספרים. יש להחזיר את המספר המקסימלי של זוגות צמודים במערך, שהסכום שלהם זהה.
3. נתון string של מספר בתצוגה הבינארית שלו. צריך להחזיר כמה פעולות נדרשות כדי להביא אותו ל-0. (הפעולות הנתונות: חלוקה ב-2, או חיסור 1).
עוסקת בפיתוח, תכנות, שיווק ומתן זיכיונות למערכות הפעלה למחשבים, פתרונות תוכנה למגזר הפרטי והעסקי ומגוון פלטפורמות משולבות חומרה ותוכנה. בתחום המוצרים ללקוחות משווקת החברה מערכות הפעלה לשרתים, מחשבים אישיים ומחשבי כף יד.