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: 7 خلايا. ومن أصغر قيمة، 1، تتكوّن أفضل المسارات من 5 خلايا.
challenge icon

سؤال إضافي

هل يمكنك أيضًا إرجاع خلايا أحد أطول المسارات، إلى جانب طوله؟

إعادة ضبط الشيفرة
def longestIncreasingPath(matrix):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

وسيط

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

الإخراج المتوقع

7