ראיון ראשון עם רש"צ לא היה כל כך טכני
ראיון שני עם מפתח מהצוות כאשר היו הרבה שאלות טכניות
שאלות מתוך הראיון
צריך לממש פונקציית
Set(k,v)
Get(k)
SelAll(Value)
ב O(1)
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2018
לבנות מחלקה עם HashMap המכיל את הערכים שעשו Set וAllValue שמכיל את הערך כאשר עושים SetAll וHashSet שמכיל את כל הK שעשו להם Set
ובSetAll צריך לאפס את הHaseMap וכו
מרץ 2018
איך תאפס איך תדע אחרי זה למי עשו set בעבר.? כלומר אם אחרי האיפוס יעשו get למשהו איך תדע אם מישהו עשה לא set ליפני?
הופניתי דרך SQLINK ומהר מאוד נקבע ראיון ראשון
הראיון היה בעיקרו טכני - היה נראה כי חשוב להם יעילות בדטה בייס רלציוני ( מאחר וזה היה לצוות ריפורטינג זה הגיוני )
שאלות מתוך הראיון
קיבלתי את זה בע"פ עם אותה דוגמא
/ * given arrays of pairs -> {millisecond,some float marking a change}
*
* need to print : per second the max and avg change
* for example :
* input : {123,1.5},{222,3},{335,2.5},{2222,4},{2223,6},{3333,5}
*
* output :
*
* sec | avg | max
* 1 | 2.33 | 3 ( in the first second we got 1.5,3,2.5 - so avg is (1.5+3+2.5)/3 max is 3
* 3 | 5 | 6
* 4 | 5 | 5
תשובות
הוסף תשובה
|
לצפיה בתשובות
פברואר 2018
public static void printAvgAndMaxPerSecond(List> arrays){int prevSecond = Math.toIntExact(arrays.get(0).getKey() / 1000 + 1);Float max = arrays.get(0).getValue();Float sum = arrays.get(0).getValue();int counter = 1;for (int i = 1; i < arrays.size();) {while(i < arrays.size() && prevSecond == Math.toIntExact(arrays.get(i).getKey() / 1000 + 1)){ sum += arrays.get(i).getValue();max = Math.max(max,arrays.get(i).getValue());counter++; prevSecond = Math.toIntExact(arrays.get(i).getKey() / 1000 + 1); i++;
}System.out.println("Sec : " + prevSecond + " , Avg : " + Float.toString(sum/counter) + " , Max : " + max);
if( i < arrays.size()) {
prevSecond = Math.toIntExact(arrays.get(i).getKey() / 1000 + 1);
sum = 0f;
max = Float.MIN_VALUE;
counter = 0;
}
}
}
זימון לראיון ובמידה ועוברים יוצרים איתך קשר לאחר 2-3 ימים.
שאלות מתוך הראיון
1. ספר מה עושה בתפקיד הנוכחי שלך כ-QA?
2. צייר דיאגרמה של המערכת בחברה הקודמת.
3.ספר על באגים שמצאת.
4. נותנים איזשהי מערכת איזה טסטים היית עושה בצד ה-C\S.
שלב ראשון שהייתי היה שתי שאלות, הראשונה קלה והשניה מה שכתבתי כאן
שאלות מתוך הראיון
נתון מערך A שמכיל ערכים מטיפוס int וצריך להחזיר מערך B כך שהאיבר הi בו יהיה סכום כל האיברים במערך A פחות האיבר הi בA, ואסור להשתמש בפעולת חיסור או כל שקולה לה.
תשובות
הוסף תשובה
|
לצפיה בתשובות
דצמבר 2017
לעדכן את האיבר במיקום אפס במערך B לערך אפס, ואז לרוץ בלולאה מi שווה 1 עד n ובכל איטרציה להכניס לאיבר הi במערך B את הסכום של האיבר הi-1 במערך A ושל האיבר הi-1 במערך B.
ואז לבצע בדיוק אותו דבר מצד ימין.
בעצם שני מעברים לינאריים
הם מאוד איטיים בתהליך שלהם, לפעמים צריך להציק להם כדי שיחזרו עם תשובה. עושה רושם של חבר'ה נעימים וטובים וברושם ראשוני החברה נראית כמו מקום טוב לעבוד בו
שאלות מתוך הראיון
1. נתון סט של מספרים מ1 עד n+1. כמו כן נתון מערך בגודל n כך שכל תא במערך מכיל אחד מתוך המספרים בסט ואין כפילויות. איך נמצא את המספר החסר מתוך הסט במערך?
2. ישנו טקסט עם הרבה מחרוזות (מילים) ובנוסף מילה. צריך למצוא דרך יעילה למצוא את כל המילים מתוך הטקסט המתחילות באותה המילה.
3. במשחק שחמט הפרש יכול לזוז שתי משבצות בכיוון מסוים ועוד משבצת אחת הצידה (לדוגמא שתיים למעלה ואחת שמאלה או שתיים שמאלה ואחת למעלה) צריך לכתוב אלגוריתם (לאו דווקא היעיל ביותר) שבהינתן לוח ונקודת התחלה, ימצא האם קיים מסלול שבו הפרש עובר בכל המשבצות בלוח, ולא "נוחת" על אותה המשבצת יותר מפעם אחת. נתון: ישנה פונקציה שבה בהינתן נקודה על הלוח, מחזירה את כל הנקודות האפשריות שאליהן הפרש יכול להתקדם.
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2017
1. לסכום את כל המספרים 1 עד n+1 ואת כל המספרים במערך ולעשות הפרש בניהם.
2. יש להשתמש בעץ תחיליות (trie).
3. קצת מסובך, בגדול איזשהי וריאציה של bfs עם backtracking.