מי שמעוניין שחזור ראיון
שואלים קצת מה עשיתם ומה הכיוון שלכם, לא מחפשים באופן כללי ניסיון בפיתוח אלא יותר בודקים חשיבה.
המראיין הסביר שיש 3 ראיונות.
בראיון הראשון קצת מכירים אותכם ובודקים אותכם עם שאלת חשיבה.
בראיון השני אמרו שיהיה איזה מבחן מחשב עם שפת תכנות שאף אחד לא מכיר, יכול להיות שיש גם שאלות הגיון (ראיתי פה בשחזורים קודמים)
ראיון שלישי זה HR ו VP R&D
אז נתנו שאלת הגיון אחת ואני חושב שזה דיי קובע,
אתם צריכים לכתוב פונקציה שמקבלת מערך ויש לכם את הפונקציה (N)RANDOM הפונקציה מחזירה מספר רנדומלי בין 0 לN.
עכשיו אתם צריכים לכתוב פונקציה שמערבבת את איברי המערך עם RANDOM .
אני לא הגעתי לפתרון מלא אבל האלגוריתם הוא פשוט מאוד, אפשר להסתמך על עקרון של החלפת איברים עם אינדקס רנדומלי.
-- To shuffle an array a of n elements (indices 0..n-1):
for i from n−1 downto 1 do
j ← random integer such that 0 ≤ j ≤ i
exchange a and a
פירוט תראו כאן
https://en.wikipedia.org/wiki/Fisher%E2 ... es_shuffle
וכאן יש עוד דוגמא עם אותו עיקרון
http://stackoverflow.com/questions/1519 ... f-an-array
לפני 8 שנים
ע"י: 1_אורח_כללי
ראיון ראשון - היכרות ושאלות לוגיקה/תכנות על דף נייר.
1. נתון מערך לא ממוין עם 25 מספרים ולך נתונה פונקציה sort שמקבלת 5 מספרים וממיינת אותם.
כתוב פונקציה שמשתמשת אך ורק בפונקציית sort הנתונה לעיל והחזר את 3 האיברים המקסימליים במערך.
מהי כמות הפעמים המינימלית בה תצטרך להשתמש בפונקציית המיון לשם כך?
2. נתון מערך לא ממוין בגודל n עם מספרים חיוביים ושליליים.
כתוב פונקציה המקבלת X (מספר כלשהו) ומחזירה (במידה ויש) את 2 המספרים במערך אשר תוצאת חיבורם שווה ל X.
עשה זאת בסיבוכיות זמן הטובה ביותר.
פתרונות:
1. מיין תחילה ל 5 תתי מערכים, כך קיבלנו 5 תתי מערכים אשר האיבר הראשון בכל תת מערך הוא הגדול ביותר.
כעת, המראיין מוסיף פרט לשאלה וטוען כי אם a1, b1, c1, d1, e1 הם האיברים הראשונים בכל חמישייה אז:
a1>b1>c1>d1>e1.
כעת אנו יודעים שהאיבר הגדול במערך הוא a1 ואותו קיבלנו לאחר הפעלה של הפונקציה sort 5 פעמים.
נותר לנו למצוא את השניים הנותרים. נוכל להתעלם מ 2 החמישיות האחרונות ולהשתמש שוב בפונקציה פעם אחת ויחידה.
(הבעיה מוכרת בשם The 25 Horses, ניתן למצוא ביוטיוב).
2. בעיה ידועה מקורס של מבני נתונים, ניתן להשתמש ב hash table ולפתור את הבעיה ב O(n).
המראיין מצפה מכם בתחילת הפתרון לפתור זאת בדרך הנאיבית של לולאה כפולה ואז לשפר את הפתרון.
(תוכלו להיעזר בערוץ היוטיוב MindYourDecisions לעוד חידות דומות).
בהצלחה