|
|
|
הוסיפו מידע על מעסיק
|
|
מפתח C#
|
|
שאלות מראיונות עבודה לתפקיד
|
|
|
|
|
|
|
Theworker >
תוכנה
>
פירוט שאלות מראיונות עבודה לתפקיד מפתח C#
פירוט שאלות מראיונות עבודה לתפקיד מפתח C#
520 - 511 מתוך 1165
|
|
|
|
|
ראיון לתפקיד מפתח C#
בחברת ורינט
אוגוסט 2020
|
30.08.2020
|
|
|
| פרטים לגבי התהליך |
ראיון ראשון ע"י הר"צ פיתוח |
|
| שאלות מתוך הראיון |
מה הוא קלאס? מה ההבדל בין מחלקה אבסטרקטית לאינטרפיס? מה ההבדל בין AS ל CAST? |
|
|
|
|
|
|
הוסף מידע על החברה
|
עוד מידע על ורינט :
|
|
|
אוגוסט 2020
|
20.08.2020
|
|
|
| פרטים לגבי התהליך |
תחילה יש מבחן בית |
|
| שאלות מתוך הראיון |
Write a function:
int solution(int A[], int N);
that, given an array A of N integers, returns the smallest positive integer (greater than 0) that does not occur in A.
For example, given A = [1, 3, 6, 4, 1, 2], the function should return 5.
Given A = [1, 2, 3], the function should return 4.
Given A = [−1, −3], the function should return 1.
Write an efficient algorithm for the following assumptions:
N is an integer within the range [1..100,000];
each element of array A is an integer within the range [−1,000,000..1,000,000].
Copyright 2009–2020 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited. |
|
| תשובות |
הוסף תשובה
|
לצפיה בתשובות
|
|
|
|
|
| |
דצמבר 2020
|
| |
int solution(int A[],int N){
int counters[N] = {0};
for(int i=0; i=1 && A[i]<=N)
counters[A[i-1]]++;
for(int j=1;j<=N;j++)
if(counters[j-1]==0)
return j;
return N+1;
}
|
| |
|
| |
דצמבר 2022
|
| |
השאלה היא האם יש מספרים שליליים. אם כן אנחנו יכולים לוותר על זיכרון נוסף של counters. נניח שאין מספרים שליליים או שלפחות 'נמחק' אותם (אנחנו עוברים פעם ראשונה ומוחקים כל מספר שלילי ואפסים ושמים במקומם 1 - כי מספר שלילי והמספר אפס בכל מקרה לא מעניינים אותנו ולא משנים את התוצאה). אם לא נראה את המספר 1 (מבלי שהפכנו מספר שלילי ל1) אז ישר נחזיר שהמספר 1 חסר.
ואז נעבור על המערך פעם שנית - על כל מספר x בין 1 לבין N (- גודל המערך) שנקבל - נלך לתא הx-1 ונשנה את ערכו מחיובי לשלילי, (ככה נסמן שכבר ראינו את המספר שמסמל את התא הזה).
כל מספר אחר (x הוא 0 או גדול מN) נדלג עליו ולא נעשה כלום.
ככה נמשיך עד שנגיע לסוף המערך.
נעבור על המערך פעם שלישית. הפעם נבדוק כל ערך בתא i - אם הוא שלילי - נמשיך הלאה (זה אומר שאכן ביקרנו את התא i ושינינו את ערכו לשלילי).
אם הוא לא שלילי, נחזיר את האינדקס (i) פלוס 1 - כי בעצם לא ביקרנו בו ולא שינינו אותו לשלילי.
סה"כ הזיכרון שהשתמשנו הוא O(1) - בשביל boolean לבדוק האם ראינו כבר את המספר 1 או לא, במעבר הראשון.
זמן ריצה O(N).
|
| |
|
| |
|
|
|
הוסף מידע על החברה
|
עוד מידע על TandemG :
|
|
|
יש לכם מה להוסיף ?
|
|
|
|
|
|