Número máximo de elementos no caminho de uma matriz
Tentei resolver um problema de mapa (matriz 4x4) usando python.
Quero encontrar o número máximo de elementos no caminho de um mapa, desde que o próximo nó seja menor que o nó anterior, com todas as combinações possíveis de elementos na matriz.
4 8 7 3
2 5 9 3
6 3 2 5
4 4 1 6
O movimento é como de um elemento pode se mover para leste-oeste-norte-sul
Por exemplo, de m [0] [1] pode passar para m [0] [2] e m [1] [1] 4-> 8 ou 2
Aqui está o código de exemplo, mas não tenho idéia de como verificar recursivamente todos os elementos.
#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])
como recuperar esta função para repetir até o fim
Por exemplo, a resposta será como 8-5-3-2-1 (caminho mais longo com fator decrescente)