נתון לך מערך ומספר 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
1. א. יש מזפר עם 2000 ספרות, הספרה הראשונה 3, צריך להגיד מה תהיה הספרה האחרונה. צריך שכל 2 מספרים סמוכים יתחל'ו ב 17 או ב 23.
ב. האם קיים עוד פתרון? כן, מה הוא?
2. לכתוב פונקציית alloc ו free כאשר יש זיכרון עם 32 בתים שכל בית בגודל 32 ובסנוף יש משתנה מסגוג int 32 שאפשר להשתמש בו.
ב. אותה שאלה רק שהפעם כל השורות בזיכרון בגודל 64 ביט
תשובות
הוסף תשובה
|
לצפיה בתשובות
דצמבר 2022
1. א. 34692..34693
ב. 34685..34693
2. א. להשתמש בINT כדי לנהל את הזיכרון, כל פעם שעושים ALLOC להדליק ביט וכל פעם שעושים FREE לשחרר ביט
ינואר 2023
1)אם מתחילים ב-3 נייצר מספר בן 5 ספרות שיסתיים בהכרח ב-2 או 5. אם מסתיים ב-5, לא יהיה לזה המשך כי החמישיה הבאה תסתיים ב-7 ואין מספר דו ספרתי שמתחיל ב-7 ומתחלק ב-23 או 17.
לכן הפיתרון הוא שיהיו 399 מספרים בני 5 ספרות שמסתיימים ב-2 והמספר החמש ספרתי האחרון יוכל להסתיים ב-2 או 5