Menu
CoddyTech

Longest Increasing Path in a Matrix

Дан matrix — сетка целых чисел с m строками и n столбцами, представленная в виде списка строк. Путь проходит вверх, вниз, влево или вправо (по диагонали ходить нельзя, переходить через края нельзя), и на каждом шаге значение в следующей ячейке должно быть строго больше. Верните количество ячеек в самом длинном таком пути. Путь, состоящий из одной ячейки, имеет длину 1.

Функция

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