נתונה מטריצה (מערך דו-ממדי) mat המכילה אך ורק את הערכים 0 או 1.
נגדיר מסלול (path) במטריצה, אם הוא מקיים את התנאים הבאים:
כתבו את השיטה:
checkPath הבודקת האם קיימים מסלולים במטריצה (כפי שהוגדר לעיל). אם קיים לפחות מסלול אחד, יש להחזיר true, אחרת להחזיר false.
כתבו את השיטה:
countPathsThroughOnes המחזירה את מספר המסלולים שיש במערך, אם אין מסלולים כאלו, יוחזר 0.
השיטות צריכות להיות רקורסיביות ללא שימוש בלולאות כלל. כך גם כל שיטות העזר (אם תכתבו) לא יכולות להכיל לולאות.
null.mat = [[1, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1]]
true 4
הסבר: קיימים ארבעה מסלולים אפשריים לתא (3,4)
mat = [[1, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]]
true 2
הסבר: קיימים שני מסלולים אפשריים העוברים בכל האחדים
mat = [[1, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 1]]
false 0
הסבר: לא ניתן להגיע לכל האחדים במסלול חוקי
mat = [[1, 1, 1], [0, 0, 1], [0, 0, 1]]
true 1
הסבר: קיים מסלול אחד העובר בכל האחדים
mat = [[1, 1], [1, 1]]
false 0
הסבר: לא ניתן לעבור בכל האחדים במסלול חוקי
mat = [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
false 0
הסבר: לא ניתן לעבור בכל האחדים במסלול חוקי
mat = [[1, 1]]
true 1
הסבר: מטריצה 1x2 עם מסלול חוקי
mat = [[1]]
true 1
הסבר: מטריצה 1x1 היא מסלול חוקי בעצמה
קלט:
mat = [[1, 0, 0, 1, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1]]
הפלט המבוקש:
true 4