אתה נמצא בחדר חשוך. במרכז החדר ניצב שולחן ועליו מטבעות (לא ידוע כמה, אך אתה יכול לספור אותם). ידוע שבדיוק מאה מטבעות נמצאים כאשר צידם העליון מראה "עץ". כיצד תוכל לחלק את המטבעות ל-2 ערימות (לא בהכרח שוות בגודלן) אשר מכילות בדיוק אותו מספר של "עץ" (כלפי מעלה) ? יש לציין שמותר להפוך מטבעות, אך לא ניתן על פי מישוש לדעת אם מטבע הוא "עץ" או "פלי".
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2020
לבנות שתי ערימות, אחת בצד ימים ואחת בצד שמאל.
לערימה בצד ימין ניקח 100 מטבעות ונהפוך אותם.
את כל השאר נשים בערימה בצד שמאל (בלי להפוך)
אם במקרה "נפלנו" על ה100 "עץ" כולם עכשיו יהיו "פלי" ובצד השני לא יהיו עץ בכלל.. כי ידוע שיש רק 100 "עץ" על השולחן.
אם במקרה נפלנו על 100 "פלי" יהיו עכשיו 100 "עץ" בכל ערימה..
עבור כל מספר בין 0 - ל100, הערימה בצד ימין תכיל 100-מספר ה"עץ" שלקחנו ימינה וכך גם בצד שמאל
1. כתוב אלגוריתם להפיכת סדר של רשימה מקושרת.
2. נתון עץ בינארי שחלק מהעלים שלו מסומנים באדום, כתוב אלגוריתם המוצא ומדפיס את כל המסלולים שמתחילים בשורש העץ ומסתיימים בעלה אדום.
ארבע ראיונות
1: ראיון ראשון מקצועי (שתי שאלות)
2: ראיון שני מקצועי (שאלה אחת)
3: ראיון HR
4: ראיון סופי וקבלת הצעה (חצי מקצועי)
שאלות מתוך הראיון
שלב ראשון:
1. לבנות class diagram של משחק הסוללות
2. לכתוב פונקציה שמקבלת מערך ואורכו, הפונקציה מייצרת מערך חדש שכל איבר במערך החדש הוא בעצם מכפלה של כל איברי המערך הנתון חוץ מהתא שבאותו אינדקס
2.1: לעשות אותו דבר בלי פעולת חילוק
רמז: להגדיר עוד שני מערכים
שלב שני:
1. נתון קטע קוד ופונקציה שצריך לממש, ופונקציית עזר ומחזירה את הזמן הנוכחי
הפונקציה מקבלת מספר (יכול להיות 0 או 1), הפונקציה בודקת אם היא קבלה את המספר 1, 5 פעמים תוך 10 השניות האחרונות אז היא מסיים את הריצה.
רמז: לממש תור כמערך אם שני אינדקסים, אחד מצביע להתחלה והשני לסוף, המשתנים בתוך הפונקציה צריכים להיות סטטים
שלב שלישי:
ראיון HR רגיל
שלב רביעי:
ראיון חצי מקצועי, היו שאלות כלליות בתקשורת ופרוטוקולים וקבלת ההצעה
25 סוסים בתחרות. בכל סיבוב ניתן למיין את מהירות של 5 סוסים.
עם הכי פחות סיבובים, הסבר איך נוכל לדעת מי ה3 סוסים הכי מהירים מבין ה25?
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2019
צריכים 7 סיוסים
5 ראשונים ירוצו כל ה25 סוסים, (12345, 678910, 11,12,13,14,15....)
לאחר מכן, עבור סיבוב 6, ירוצו כל ההכי טובים של הסיבובים הקודמים, נקבל את הסוס הכי מהיר.
כדי למצוא את הסוס מספר 2 ומספר 3, נריץ את הסוס מספר 2 ומספר 3 של הסיבוב ה6. בהכרח שני הסוסים האחרים של תחרות מספר 6 איטיים יותר.
אנו יודעים מאילו סיבובים באים שלושת הסוסים הללו. נניח שהסוס מספר 2 של סיבוב 6 בא מסיבוב 2 ושהסוס המהיר מסיבוב 6 בא מסיבוב 1, וה3 המהיר מ3.
יודעים שסוסים מסיבוב 4, 3 ו 5 איטיים יותר בהכרח. מחפשים את הסוס המהיר מספר 2 ו3.
ניקח את הסוס מספר 2 ומספר 3 של סיבוב 1, את הסוס מספר 2 של סיבוב 2, ונריץ בסיבוב מספר 7 עם סוס מספר 2 ו3 של סיבוב 6.
ההכנה לראיון היה ממש טוב. התקשרו לתאם איתי ולוודא באיזה יום אני יכול. נשלח אליי מייל לאחר השיחה עם לינק מסודר על אופן הגעה לחניה ומהי שעת הראיון. ביום הראיון עצמו חיכיתי מעל לרבע שעה מהשעה שנקבעה כי "שכחו" לאסוף אותי.(אפילו הקדמתי כדי ליצור רושם טוב ובסוף הם אלו שאיחרו, אם המצב היה הפוך לא הייתי נכנס לראיון אפילו).
שאלות מתוך הראיון
נתונות לך שני רשימות מקושרות חד צדדיות. אורכם אינו ידוע. הצע אלגוריתם שבודק האם יש בשני הרשימות איבר שמצביע לאותו איבר אחריו.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2019
יש את הפתרון הפשוט. לעבור על כול אחד ולכול אחד לבדוק ברשימה השנייה האם האיבר הבא שלהם שווה. אם כן לעצור ולהחזיר כן ואם לא להחזיר בסוף לא. סיבוכיות n בריבוע. ניתן גם בזמן לינארי. לספור איברעם ברשימה 1 וברשימה 2.להוסיף תוך כדי הספירה של הרשימות לרשימה חדשה שתכיל את שניהם.לבדוק בסוף האם הגודל של הרשימה החדשה שווה לגודל של רשימה 1 ו 2. אם כן תחזיר שאין איבר שמצביע לאותו אחד אחרת תחזיר שכן יש איבר כזה
ינואר 2020
כיוון שלא שאלו היכן הרשימות מצביעות ניתן לעבור על שתי הרשימות עש האיבר האחרון ולראות האם זהו אותו איבר. סיבוכיות של O(n