יש מלך עם 10 משרתים ו1000 בקבוקים. אחד מהם רעיל ומי ששותה ממנו מת אחרי זמן קצר. עלייך למצוא דרך שבסבב שתיה בודד תוכל לדעת מה הבקבוק הרעיל
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2023
לכתוב טבלת אמת. הבקבוקים ממסופרים בצורה בינארית, המשרתים הם ה10 ביטים. לפי המשרתים שמתו ניתו לדעת מה הבקבוק שששתו ממנו
נובמבר 2023
חיפוש בינארי.
הראשון ישתה מתוך חצי מהבקבוקים.
אם הוא חי, נזרוק את הבקבוקים האלה ונמשיך עם חצי משאר הבקבוקים.
אם הוא מת נזרוק את החצי שלא שתו ממנו ונמשיך עם חצי מאלה ששתו עכשיו.
התהליך יסתיים עד 10 משרתים כי log2(1000)<10
ינואר 2024
יש לחידה 2 וריאציות.
אם יש "זמן המתנה" לרעל ולכן אי אפשר לבצע הרבה סבבים- הפתרון הוא "טבלת אמת", חפשו ביוטיוב 1000 Wine bottles.
אם אין זמן המתנה- ניתן לבצע "מקביליות" כך שבכל פעם מחלקים את מספר הבקבוקים לN קבוצות לפי מספר המשרתים שנותרו. מהקבוצה ששתה המשרת שמת מחלקים שוב לכמה שנשארו,
כלומר בהתחלה 100 לכל משרת,
לאחר מכן בערך 12,
לאחר מכן בערך 2.
כאן מספר המשרתים שימותו קבוע, בניגוד לפתרון הקודם שבו מספר המשרתים שימותו תלוי בייצוג הבקבוק המורעל.
שאלה חביבה: 25 סוסים,בכל מרוץ נוכל לשתף חמישה סוסים
איך מוצאים את השלושה המהירים ביותר בזמן המינימאלי
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2023
5 מרוצים מוצא את 5 הראשונים ביותר ולאחר מכן עושה תחרות בין החמש מהירים ביותר (6 מרוצים לבנתיים סהכ) ולאחר מכן עוד מרוץ שבו משתלבים מקום 2 ו 3 מהסוס המהיר ביותר ,המקומות 2/3 מהמירוץ של המהירים ביותר ומקום 2 מהמירוץ של השני המהיר ביותר
הריאיון היה לתפקיד Switch SDK Verification Engineer Student.
ריאיון פרונטלי (כי התאפשר), שני מראיינים, התחיל בלספר על התפקיד והחברה, ואז לספר על עצמי ועל פרויקט שעשיתי שחוויתי בו קושי, אם השתמשתי במבנה נתונים מסוים בפרויקט.
שאלות מתוך הראיון
Int func(){
Int a = 1;
a++;
Return a;
}
יש שני ת'רדים, שניהם קוראים לפונקציה אחד עוצר אחרי ההשמה לa ואחד עוצר אחרי הa++
מה הערך של a?
Void main(){
Const char* arr = "interview";
Char* ptr = (char*)malloc(sizeof(strlen(arr)+1));
For(int I = 0; i
*(++ptr) = arr[i];
}
Free(ptr);
}
מה הקוד עושה?
מה הבעיה בקוד ואיך אפשר לתקן אותה?
הקוד מכניס לזיכרון את המחרוזת של arr.
שאלה נוספת:
יש רשימה מקושרת חד כיוונית - איך אפשר לזהות שיש בה לולאה ללא שימוש במבנה נתונים נוסף.
אפשר בפסודו קוד או בכל שפה שנוח.
שאלה נוספת - לכתוב בפייתון קוד שמזהה אם מספר שנתון הוא פולינדרום.
תשובות
הוסף תשובה
|
לצפיה בתשובות
ינואר 2023
תשובה - עבור כל אחד מהת'רדים הערך שונה פעם אחת זה 1 ופעם אחת זה 2.
יש שתי בעיות בקוד, 1 זה שקודם מקדמים את המצביע ואז מכניסים אז האות w דורסת זיכרון ולא ברור לאן היא נכנסת.
השני זה שלא משחררים את הזיכרון בצורה נכונה. צריך לחזור אחורה ולשחרר בלולאה.
פולינדרום - אפשר להפוך אותו לסטרינג ואז להפוך את הסטרינג ולראות אם הוא שווה למספר שקיבלנו.