פסודו קוד:
1)מצא האיבר המינימלי
2)מצא האיבר המקסימלי, שמור אותו ותשנה אותו במערך לאיבר המינימלי
3)תעשה את צעד 2 עוד פעמיים
4)תכפיל את 3 האיברים שמצאת
נובמבר 2023
הפסודו קוד שנתנו פה עובד תמיד רק אם מבטיחים לנו שבמערך אין שליליים, מה שכתוב כאן זה פשוט למצוא את שלושת המקסימליים וברור שלא זאת הכוונה.
הנה פסודו קוד שעובד גם עם שליליים במערך:
1. תמצאי את שלושת המקסימליים ותכפילי אותם.
2. תמצאי את שני המינימליים ותכפילי אותם במקסימלי.
3. תחזירי את המקסימום מבין מכפלות 1 ו2.
למה זה נכון? תחשבו איך שלושה מספרים יכולים להתחלק לחיובים ושליליים, יש 4 אופציות כאלה(למשל שני חיוביים ושלילי).
עכשיו תחשבו איך ממקסמים כל אחת מהאופציות.
לאחר צמצום לוגי תגיעו לאלגוריתם שכתבתי.
ינואר 2024
You can sort the array in O(N Log(N)) time complexity, then, return the product of the last three elements
הראיון היה מקצועי ויסודי.
פירטו את האתגרים של המשרה עצמה:
1.פיתוח ותחזוקת בדיקות רגרסייה.
2. פיתוח תשתיות אוטומטיות.
3. פיתוח ותחזוקת ci.
4. בדיקות ביצועים
יש שני ראיונות טכנים וראיון hr.
הראיון הראשון באנגלית וטכני.
מחזירים תשובה מהר
שאלות מתוך הראיון
1. ממש setall, get, set בסיבוכיות זמן ריצה קבועה - O(1).
2. נתון לך מעליות - צייר דיאגרמה ותיתן פתרון:
א. מעלית תגיע מהר.
ב. אם לוחצים על כפתור בקומה מסויימת הרבה פעמים, שמעלית תיתן לקומה הזאת תעדוף גבוה ותגיע לשם
נתון לך מערך ומספר X. מצא שני מספרים במערך שסכומם הוא X אם קיים.
תשובות
הוסף תשובה
|
לצפיה בתשובות
אוגוסט 2023
3 תשובות:
1. לולאה כפולה O(N^2)
2. מיין את המערך, תרוץ עם שני פויינטרים אחד מההתחלה ואחד מהסוף. אם הסכום של האיברים שווה ל X החזר, ואם לא קדם את הפויינטר המתאים בהתאם.
3. האש: תזרוק את כל האיברים בטבלת האש. כעת חפש אם לכל איבר המשלים שלו (X - arr[i]) מופיע בטבלה, אם כן החזר
ספטמבר 2023
def two_sum(numbers: list[int], target: int) -> tuple[int,int]:
{}=seen
:for i in range(len(numbers))
remain = traget - numbers[i]
if remain in seen:
return seen[remain], i
else:
seen[numbers[i]] = i