נתונים שני מערכים דו-ממדיים mat1 ו- mat2 המלאים במספרים שלמים.
נאמר שהמערך mat2 נמצא בתוך המערך mat1 החל ממיקום [i][j], אם יש חפיפה מלאה בין המערך mat2 עם תת-המערך של mat1 מהמקום mat1[i][j] (כלפי ימין ולמטה).
לדוגמא, אם המערכים הם:
| 0 | 1 | 2 | 3 | |
| 0 | 5 | -2 | 5 | 0 |
| 1 | 25 | 4 | 25 | 4 |
| 2 | 10 | 33 | 28 | -7 |
| 3 | 51 | -8 | 10 | 33 |
| 4 | -3 | 25 | 4 | 20 |
| 0 | 1 | |
| 0 | 25 | 4 |
| 1 | 28 | -7 |
| 2 | 10 | 33 |
המערך mat2 נמצא בתוך המערך mat1 החל מהמיקום [1][2]. שימו לב ש- mat2 לא נמצא בתוך המערך mat1 החל משום מיקום אחר. גם לא מהמיקום [1][0] כי שורה 1 של mat2 לא נמצאת בתאים [2][0] ו- [2][1] של המערך mat1, ושורה 2 של mat2 לא נמצאת בתאים [3][0] ו- [3][1] של המערך mat1.
בהינתן mat1 ו- mat2 - שני מערכים דו-ממדיים מלאים במספרים שלמים כלשהו. יש להחזיר כמה פעמים המערך mat2 נמצא בתוך המערך mat1 (לפי ההסבר לעיל), ולהדפיס את כל המיקומים במטריצה mat1, שורה i ועמודה j, שהחל מהם יש חפיפה מלאה בין תת המטריצה של mat1 ממקום [i][j] והלאה לבין המטריצה mat2 כולה.
השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
אף אחד מהמערכים המועברים כפרמטרים אינו null וגודלו של כל מערך הוא לפחות 1x1.
null.mat2 בתוך mat1 וגם להדפיס את המיקומים הנדרשים.mat1 = [[5, -2, 5, 0], [25, 4, 25, 4], [10, 33, 28, -7], [51, -8, 10, 33], [-3, 25, 4, 20]], mat2 = [[25, 4], [28, -7], [10, 33]]
1 2 1
הסבר: המערך mat2 נמצא בתוך המערך mat1 החל מהמיקום [2][1].
mat1 = [[1, 12, -17, 4, 6, 13], [7, 6, 3, 0, 31, 9], [-2, 10, 12, -17, -5, -1], [12, -17, 6, 3, 12, -17], [6, 3, 10, 12, 6, 3], [10, 12, 1, 5, 10, 12]], mat2 = [[12, -17], [6, 3], [10, 12]]
0 1 2 2 3 0 3 4 4
הסבר: המערך mat2 נמצא בתוך המערך mat1 החל מ-4 מיקומים שונים.
mat1 = [[1, 2, 5], [3, 4, 6], [7, 8, 9]] mat2 = [[1, 2], [3, 4]]
0 0 1
mat1 = [[1, 2], [3, 4]] mat2 = [[1, 2], [3, 4]]
0 0 1
mat1 = [[1, 2], [3, 4]] mat2 = [[1, 2], [3, 5]]
0
mat1 = [[5, 5, 5], [5, 5, 5], [5, 5, 5]] mat2 = [[5, 5], [5, 5]]
0 0 0 1 1 0 1 1 4
mat1 = [[-1, -2, 3], [-4, -5, 6], [7, 8, 9]] mat2 = [[-1, -2], [-4, -5]]
0 0 1
mat1 = [[7]] mat2 = [[7]]
0 0 1
קלט:
mat1 = [[5, -2, 5, 0], [25, 4, 25, 4], [10, 33, 28, -7], [51, -8, 10, 33], [-3, 25, 4, 20]], mat2 = [[25, 4], [28, -7], [10, 33]]
הפלט המבוקש:
1 2 1