שורות במטריצה המכילות את כל המספרים במערך

נתונים:

  • מערך דו-ממדי mat של מספרים שלמים וחיוביים (בגודל n שורות ו- m עמודות).
  • מערך חד-ממדי arr של מספרים שלמים וחיוביים (בגודל m)
  • מספר שלם k

אנחנו רוצים לבדוק האם קיימות לכל היותר k שורות של המערך mat כך שאיחוד השורות האלו מכיל את כל המספרים שבמערך arr.

לדוגמא, אם המערכים mat ו-arr הם כדלהלן:

012
723
 012
0157
1329
2123

עבור k = 2, נקבל תשובה חיובית כי שורה מספר 0 ושורה מספר 2 במערך mat המכילות את המספרים 1, 5, 7, 2, 3 מכילות את כל מספרי המערך arr.

גם שורות 0 ו-1 במערך המכילות את המספרים 1, 5, 7, 3, 2, 9 מכילות את כל מספרי המערך arr. כמו כן ברור שכל k>2 מקיים את התנאי.

אולם עבור k = 1 נקבל תשובה שלילית כיוון שאין שורה אחת במערך mat שמכילה את כל איברי המערך arr.

בהינתן מערך דו-ממדי mat, מערך חד-ממדי arr ומספר שלם k. יש להחזיר את הערך true אם יש k שורות (או פחות) במערך mat שאיחודן מכיל את כל מספרי המערך arr, ו-false אחרת.

השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.

אילוצים:

המערכים מלאים במספרים שלמים חיוביים, והם בגדלים המתאימים.

לנוחותכם, הגדרנו כמה שיטות שאתם יכולים (אך לא חייבים) להשתמש בהן. אין צורך לממש אותן:

java
Loading...

השיטה מחזירה true אם כל איברי במערך x שווים ל-0, ו-false אחרת.

java
Loading...

השיטה מעתיקה את כל איברי המערך src למערך dest. אפשר להניח שהמערכים שווים באורכם.

java
Loading...

השיטה מאפסת את כל איברי המערך x אשר מופיעים במערך y.

דוגמה 1:
קלט:
mat =
[[1, 5, 7],
 [3, 2, 9],
 [1, 2, 3]],
arr = [7, 2, 3],
k = 2
פלט:
true
דוגמה 2:
קלט:
mat =
[[1, 5, 7],
 [3, 2, 9],
 [1, 2, 3]],
arr = [7, 2, 3],
k = 1
פלט:
false
דוגמה 3:
קלט:
mat =
[[1, 2, 3],
 [4, 5, 6]],
arr = [1, 2, 3],
k = 0
פלט:
false
דוגמה 4:
קלט:
mat =
[[1, 2],
 [3, 4]],
arr = [1, 2],
k = -1
פלט:
false
דוגמה 5:
קלט:
mat = [[1, 2, 3]],
arr = [1, 2, 3],
k = 1
פלט:
true
דוגמה 6:
קלט:
mat =
[[1, 2],
 [2, 3]],
arr = [2, 2],
k = 1
פלט:
true
דוגמה 7:
קלט:
mat =
[[1, 1, 2],
 [2, 2, 3]],
arr = [1, 2, 3],
k = 1
פלט:
false
דוגמה 8:
קלט:
mat =
[[1, 2, 1],
 [3, 4, 3],
 [5, 6, 5]],
arr = [1, 3, 5],
k = 3
פלט:
true
Loading...
נשמרLn 1, Col 1

קלט:

mat =
[[1, 5, 7],
 [3, 2, 9],
 [1, 2, 3]],
arr = [7, 2, 3],
k = 2

הפלט המבוקש:

true