נתונות ההגדרות הבאות: המערך a נקרא "חיתוך" (intersection) של שני המערכים b ו-c אם הוא כולל את כל הערכים הקיימים גם במערך b וגם במערך c. כל ערך מופיע במערך חיתוך פעם אחת בלבד, אין חשיבות לסדר הערכים. לדוגמה: המערך a={1,3,5,10} הוא "חיתוך" של המערכים b={3,9,1,10,2,10,5} ו-c={1,3,4,10,5,7,5,1,100,7}. שני מערכים נקראים "זרים" אם אין להם אף מספר משותף אחד (אין אף מספר שנמצא בשני המערכים). לדוגמה: המערכים a={1,2,3,4} ו-b={6,7,8,9,10} הם מערכים "זרים".
נתונות ההגדרות הבאות: המערך a נקרא "חיתוך" (intersection) של שני המערכים b ו-c אם הוא כולל את כל הערכים הקיימים גם במערך b וגם במערך c. כל ערך מופיע במערך חיתוך פעם אחת בלבד, אין חשיבות לסדר הערכים. לדוגמה: המערך a={1,3,5,10} הוא "חיתוך" של המערכים b={3,9,1,10,2,10,5} ו-c={1,3,4,10,5,7,5,1,100,7}. שני מערכים נקראים "זרים" אם אין להם אף מספר משותף אחד (אין אף מספר שנמצא בשני המערכים). לדוגמה: המערכים a={1,2,3,4} ו-b={6,7,8,9,10} הם מערכים "זרים".
כתבו פעולה המקבלת שני מערכים של מספרים שלמים חיוביים דו-ספרתיים ומחזירה את מערך ה"חיתוך" שלהם.
public static int[] intersect(int[] b, int[] c)
כתבו פעולה המקבלת שני מערכים של מספרים שלמים חיוביים דו-ספרתיים ובודקת אם הם "זרים". אם כן — הפעולה תחזיר true, ולא — הפעולה תחזיר false. חובה להשתמש בפעולה שכתבתם בסעיף א'.
public static boolean areStrangers(int[] a, int[] b)
מהן סיבוכיות זמן הריצה של הפעולות שכתבתם בסעיפים א' ו-ב'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.