Menu
CoddyTech

Longest Increasing Path in a Matrix

ניתן לך matrix, רשת של מספרים שלמים עם m שורות ו-n עמודות, כרשימה של שורות. מסלול נע למעלה, למטה, שמאלה או ימינה (ללא אלכסונים וללא מעבר בין הקצוות), ובכל צעד חייבים להגיע לערך גדול יותר ממש. החזר את מספר התאים במסלול הארוך ביותר כזה. תא יחיד הוא מסלול באורך תא אחד.

פונקציה

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
רשת הערכים, כרשימה של שורות באורך שווה
מחזירהinteger
מספר התאים במסלול העולה ממש הארוך ביותר

אילוצים

  • 1 ≤ m, n ≤ 100, כאשר m = matrix.length ו-n = matrix[i].length
  • לכל שורה יש אותו אורך n.
  • 0 ≤ matrix[i][j] ≤ 231-1

דוגמאות

קלט
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
פלט
7
הסבר
המסלול 3, 4, 5, 6, 7, 8, 9 יורד בעמודה הימנית, עובר לאורך השורה התחתונה ועולה בעמודה האמצעית עד ל־9: שבעה תאים. מהערך הקטן ביותר, 1, המסלולים הטובים ביותר כוללים חמישה תאים.
challenge icon

שאלת המשך

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

איפוס הקוד
def longestIncreasingPath(matrix):
    # כתבו כאן את הקוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]

הפלט הצפוי

7