Menu
CoddyTech
flag Ar iconالعربيةdown icon

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، أفضل المسارات هي 1، 2، 7، 8، 9 و1، 6، 7، 8، 9، ويتكوّن كل منها من 5 خلايا.

lock icon+18 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

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

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

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

المتوقع

7