יש לך בסיס נתונים של שעות יציאה ושעות כניסה של עובדים ביום מסוים. חשב את מקסימום האנשים שהיו באותו יום בזמן מסוים.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2019
פתרון אפשרי: לסדר במערך את שעות הכניסה והיציאה, למיין. לספור ++ על כל כניסה, -- על כל יציאה, ולשמור בצד את המקסימום.
אוגוסט 2022
שני מערכים ממויינים, לבצע על שניהם אטרציה במקביל בסגנון Merge (merge
sort)
בנוסף לתחזק משתנה של מקס, ושל מספר האנשים הנוכחי
אם הערך במערך הנכנסים יותר גדול מוסיפים 1 למספר האנשים ומעדכנים את המקס אם צריך.
אחרת רק מורידים ממספר האנשים.
היה טלפון עם זימון לראיון אחד מקצועי ואז הצעת שכר.
שאלות מתוך הראיון
היתה שאלה מרובת סעיפים שבה נדרש בהינתן פונקציה שמקבלת 2 צורות Max(x,y) ומחשבת מי בעלת השטח הגבוה ביותר, לממש פונקציה חדשה sort(a,b,c,d) שמשתמשת בה וממיינת את 4 הצורות שקיבלה לפי שטחן.
בסעיף ב נדרש למיין במינימום שימוש בפונקציית העזר. נשאל למה זה המינימום האפשרי (אינטואיציה).
בסעיף ג, נודע שפונקציית Max בפנים בעצם מחשבת שטח X ושטח Y ומחזירה מי גבוה יותר. בהנחה שחישוב השטח הוא כבד חישובית, כיצד ניתן לשנות המערכת כך שפונקציית sort תהיה קלה יותר חישובית.
תשובות
הוסף תשובה
|
לצפיה בתשובות
אוקטובר 2018
Comparison 1: between a, b -> min1, max1
Comparison 2: between c, d -> min2, max2
Comparison 3: between min1, min2 -> min, med1
Comparison 4: between max1, max2 -> max, med2
Comparison 5: between med1, med2
יוני 2021
הסיבה שצריך 5 השוואות הוא שמיון דורש O(log(N!)) לצורך חישוב.
תדמיינו עץ בינארי שכל צומת מהווה תנאי של גדול או קטן מבין 2 איברים כדי לממש את הסיבוכיות הזו.