Я попытался решить проблему с картой (матрица 4x4) с помощью python.Максимальное количество элементов на пути к матрице
Я хочу найти Максимальное количество элементов на пути к карте, если следующий узел должен быть меньше предыдущего узла со всеми возможными комбинациями элементов в матрице.
4 8 7 3
2 5 9 3
6 3 2 5
4 4 1 6
движение, как от элемента может перемещаться на восток-запад-север-юг
, например, из м [0] [1] может перейти в м [0] [2] и м [1] [1] 4-> 8 или 2
Вот пример кода, но я понятия не имею, как рекурсивно проверять каждый элемент.
#import itertools
n = 4
matrix = [[4, 8, 7, 3 ], [2, 5, 9, 3 ], [6, 3, 2, 5 ], [4, 4, 1, 6]]
for index,ele in enumerate(matrix):
vals=[]
for i2,e2 in enumerate(ele):
for index2,ele2 in enumerate(ele):
if index < (n-1):
if ele2 > matrix[index+1] [index2]:
vals.append(matrix[index+1] [index2])
if index > 0:
if ele2 > matrix[index-1] [index2]:
vals.append(matrix[index-1] [index2])
if index2 < n-1:
if ele2 > matrix[index] [index2+1]:
vals.append(matrix[index] [index2+1])
if index2 >0:
if ele2 > matrix[index] [index2-1]:
vals.append(matrix[index] [index2-1])
, как рекурсивный эту функцию в цикле до конца
Для примера ответом будет как 8-5-3-2-1 (самый длинный путь с уменьшением фактора)
Что вы имеете в виду Максимальная глубина? Просьба уточнить желаемый результат. – Rohcana
8-5-3-2-1 - самый длинный путь –
@Anachor Я полагаю, что он ищет самый длинный путь на квадратной (или прямоугольной) доске, что приводит к (строго) уменьшающейся последовательности чисел. Но это просто догадка ... – CiaPan