טלפונית 2 שאלות טכניות ואחת אישית.
1. למצוא את האיבר השני הכי קטן במערך.
2.לממש תור בעזרת רשימה
3. ספר על פעם שעבדת בקבוצה עם עוד אנשים ולא הסכמתם על סטנדרטים של ביצוע המשימה
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2019
1. לעבור על המערך ולהחזיק 2 משתנים עבור מינימום
2. להחזיק מצביע על תחילת הרשימה ומצביע על סופה
דצמבר 2019
#include
#include // std::numeric_limits
#include
int main()
{
int array[] = {12, 13, 1, 10, 34, 1, 0};
int smallest = std::numeric_limits::max();;
int secondSmallest = std::numeric_limits::max();
for(int num : array) {
if (num < smallest) {
secondSmallest = smallest;
smallest = num;
} else if ( num > smallest && num < secondSmallest) {
secondSmallest = num;
}
}
1. ליצור עם ערימת מינימום בגודל 2, לעבור על המערך וכל איבר שהו גדול מהמינימום הערימה למחוק את המינימום מהערימה ולהכניס אותו.
בסוף הריצה להחזיר את המינימלי מהערימה
לא נותנים כתובת מדויקת של המשרד אלא קרוב למועד הראיון. (הראיון התנהל בהרצליה)
מרגע הכניסה מוצמד לך מלווה ואם אתה זז ממנו מטר אתה חוטף מטח של צרחות כאילו אתה פולש לשטח זר. זה קרה לי והייתי בהלם, פשוט חיפשתי את השרותים בכיוון הלא נכון מסתבר. היום הם בעזריאלי בשרונה והבנתי שקצת פחות רגיש בנושא..
שאלות מתוך הראיון
1. פרט ציפיות שכר?
2. האם אתה מוכן לעבוד שבתות וחגים בדגש על כך
מאתחלים מערך NONE בעל מספר איברים זהה למערך המקורי.
רצים בלולאה בגודל המערך המקורי size=len(x)1 תתעלמו מהספרה 1 בסוף
עושים שימוש ב random.randint(0,size-1)1 כאשר X זה המערך המקורי.תתתעלמו גם פה מה-1
מבצעים השמה למערך החדש במיקום לפי אינדקס הלולאה
מסירים את האיבר מהמערך המקורי
מקטינים את גודל המשתנה size
לבסוף יש לבצע השמה ל-X של המערך שיצרנו כי הפונק' shuffle משנה את המערך המקורי.
להזכירכם, הסרנו איברים מהמערך המקורי עד שהוא התרוקן ולכן יש לבצע השמה מחדש
ינואר 2020
def shuffle_(arr)
i = arr.size-1
while (i > 0)
index = rand(i)
temp = arr[index]
arr[index]=arr[i]
arr[i] = temp
i-=1
end
arr
end
פנו אלי אחרי שמישהו שאני מכיר המליץ עלי
הראיון בחיפה במת"מ
ראיון קצר של שעה כולל זמן לשאלות אישיות
השאלה היא רק לביסוס רמה בסיסית כי בהנתן שאתה מתקבל אתה עובר קורס של 3 חודש
כאשר כל האיברים מופיעים פעמיים למעט איבר אחד, xor בין כל האיברים
אוגוסט 2019
להשתמש ב 2 hashsets . ב set הראשון להכניס איברים מהמערך ולבדוק אם הוא כבר קיים בו, אם הוא קיים להכניס ל set השני. לאחר מכן לעבור על המערך ולבדוק איזה מספר לא מופיע ב set השני - מה שלא קיים ב set השני הוא מספר ייחודי
ינואר 2020
אם איבר כלשהו מופיע שלוש פעמים (או כל מספר מופעים אי זוגי) הפתרון של הXOR לא יעבוד.
פתרון נוסף הוא ליצור מערך בגודל המקסימלי של המידע. כלומר אם האיברים הן ספרות מ0 עד 9 אז המערך בגודל 10. אם אין מידע על המספרים מלבד שהם שלים מסוג INT אז המערך יהיה די גדול בגודל 2 בחזקת 31 פחות 1.
מייצרים מערך מאופס ועוברים על המערך המקורי כאשר האינדקס של המערך החדש הוא בעצם האיבר מהמערך המקורי ומקדמים את הערך לפי מספר המופעים של האיברים במערך המקורי.
בסוף הריצה נקבל מערך חדש וכל איבר בו מייצד את המס המופעים של האינדקס שלו, אבל במערך המקורי.
לא יעיל אבל עובד פיקס בסיבוכיות n שזהו גודל המערך.
מרץ 2020
1)למיין את המערך
2)אם האיבר הראשון שונה מהשני אז הראשון הוא היחודי הראשון
שמצאנו,
3)מפה והלאה נסתכל על שלישיות עוקבות כלומר , הראשון השני והשלישי אם הם כולם שונים אז השני (האמצעי הוא יחודי גם) אם השני זהה לשלישי אז הוא לא יחודי אם שלןשתם שונים אז הוא יחודי,
נזיז את החלון אחד קדימה, לשלישיה הבאה אם שלושתם שונים זה מזה אז האמצעי הוא יחודי וכך הלאה עד לסןף המערך
אפריל 2022
הפתרון של המיון לא יעיל o(nlgn)
הפתרון היעיל ביותר-
להכניס את כל האיברים במערך ל-hashset
לאחר מכן לעבור על המערך לחפש כל איר בhashset, אם הוא לא קיים-זהו איבר יחודי.
סה"כ זמן ריצה o(n) בממוצע.