ראיון ראשון עם ראש צוות אחר כך עם ראש קבוצה. סך הכל ארך כשעה וחצי.
שאלות מתוך הראיון
שאלות ר"צ:
1. ספר לי על עצמך, על פרויקט שעשית.
2. נתונים ישרים במרחב דו מימדי (רשימה של ישרים, כך שכל ישר מיוצג ע"י 2 נקודות, כל נקודה מיוצגת ע"י 2 מספרים). יש להחזיר נק' על ציר x כך שאם נעביר בה קו אנך מקביל לציר y נחתוך כמות מקס' של ישרים. (המרחב רציף ולא בדיד).
3.נתון סולם עם n שלבים. עלייך להחזיר את כל הדרכים השונות שניתן לטפס עליו בהינתן שבכל פעם ניתן לעשות צעד אחד או 2 צעדים.
שאלות ראש קבוצה:
1. אתה כותב מערכת של טיפול בשגיאות שמגיעות בכל פרק זמן מסוים. עלייך לכתוב פונקציה שנקראת בכל פעם שיש ארור פשוט ולהחזיר האם הוא "ארור קריטי". ארור קריטי נחשב מצב בו התקבלו 5 אררורים שונים בפרק זמן של פחות מ10 שניות. שים לב שיכול לקרות מצב בו אתה מתריע על ארור קריטי ברצף (בעצם חפיפה של ארורים).
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2020
2. נשים לב שניתן לעשות רדוקציה לבעיה חד מימדית מכיוון שערכי הy לא מעניינים אותנו. עוד נשים לב שמעניינות אותנו רק נקודות שהן התחלה או סוף של ישר מכיוון ש"על גבי הישר" שום דבר לא יכול להשתנות. ניתן לעבור על כל הנקודות שיש ועבור כל נק'נעבור על שאר הישרים ונבדוק האם היא ביניהם (רק ציר הx מעניין בעצם) ריצה בn הריבוע.
שיפור - נמיין את כל הנקודות לפי ציר x. נרוץ מהנקודה הקטנה ביותר ונשמור מונה וערך מקס' וערך מקס' של ציר x. כל פעם שנעבור בנק' שהיא התחלה של ישר, נעלה את המונה ונבדוק אם עברנו את המקס' אם כן נעדכן את ערכי המקס' בהתאם. המיון יעלה n log n.
3. פתרון רקורסיבי
f(n) = f(n - 1) + f(n - 2)
f(0) = f(1) = 1
שזה בעצם פיבונאצ'י.. ניתן אפילו לפתור עם נוסחא ספציפית.
1. ניתן לשמור מערך דינאמי עם כל הארורים שהתקבלו וכל פעם להסתכל על חמשת הארורים האחרונים, לעשות את ההפרש מהזמן הנוכחי ולראות אם זה קטן מ10 שניות. אומנם הזיכרון יתנפח וזה לא טוב. כל מה שאכפת לנו זה מה5 האחרונים. לכן נבנה תור בגודל קבוע של 5 וכל פעם נוציא ממנו את האיבר שהוכנס ראשון, נשווה נוציא ארור בהתאם ונכניס אותנו גם לתור.
לא פירטו מה התהליך כולל, היה ראיון דרך 'zoom'
לשאלה ה-2 לא כ"כ נשאר זמן, ניכר היה שגם המראיין קצת הסתבך.
בכל מקרה פתרתי לבד לאחר סיום הראיון.
שאלות מתוך הראיון
'ספר לי על עצמך, פרויקט שעשית..'
ושתי שאלות טכניות פשוטות שלאחת מהן לא נשאר זמן כ"כ.
1. כתוב פונ' שמקבלת יום חודש ושנה ומחזירה את מספר הימים שחלפו מתחילת השנה הנתונה. (צריך להתחשב בשנה מעוברת).
2. פונ' שמחזירה תת-מטריצה בהינתן אינדקסים ומערך חד-מימדי שמייצג את המטריצה.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2020
1. אפשר לרוץ על מערך שמחזיק את מספר הימים בכל חודש (הפתרון היעיל: להחזיק מערך של סכימות).
2. צריך לתת את האופסט התאים המערך החד מימדי לפי האינדקסים הנתונים (מומלך להעלות על הדף).
הפתרון:
def getRoi(imageArray, heigth, width, x1, y1, roiHeight, roiWidth):
roi_arr = []
for m in range(x1-1, roiHeight):
for n in range(y1-1, roiWidth):
print((m,n))
roi_arr.append(imageArray[width*m + n])
לא כלכך פירטו איך התהליך אצלם פשוט נקבע ראיון דרך zoom
לענ"ד: לא מסובך מהפשוטים שהיו לי. התחלתי לפתור את השאלה ה-2 אבל לא היה מספיק זמן המראיין ניסה להראות את הפיתרון ודיי הסתבך בעצמו קצת, אחרי זה ניסיתי לבד בדרך שניסיתי בהתחלה ואכן זה הפיתרון (מצ"ב למטה).
שאלות מתוך הראיון
קצת שאלות על רקע כללי לספר על פרויקט כלשהו שעשיתי וכו'
ושתי שאלות טכניות:
1. לכתוב פונ' שמקבלת יום חודש ושנה ומחזירה את מספר הימים שחלפו מתחילת השנה.
2. למפות תת-מטריצה מתוך מטריצה כללית בהינתן האינדקסים וייצוג של המטריצה כמערך חד-מימדי.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2020
1. מאוד פשוט רצים על רשימה שמחזיקה את כמות הימים באותו חודש וסוכמים,
פתרון יעיל יותר: להחזיק מערך של סכימות. (צריך להתחשב בשנה מעוברת\לא מעוברת).
2. גם דיי פשוט (כדאי להעלות על הנייר ואז לראות לאיזה אינדקסים צריך להגיע עבור קלט מסויים) העיקרון לתת את ה'אופסט' המתאים במערך.
בכל מקרה זה הפיתרון:
def getRoi(imageArray, heigth, width, x1, y1, roiHeight, roiWidth):
roi_arr = []
for m in range(x1-1, roiHeight):
for n in range(y1-1, roiWidth):
print((m,n))
roi_arr.append(imageArray[width*m + n])