Поэтому я пишу программу для поиска минимального пути, которая будет связывать только положительные элементы.Пример:
-1 10 -1
10 2 10
-1 10 -1
Таким образом, в этом примере средний элемент 2 соединит все положительные значения. Поэтому стоимость равна 2.
Мой код выглядит следующим образом:
import sys
def minCost(cost, m, n):
if (n < 0 or m < 0):
return sys.maxsize
elif (m == 0 and n == 0):
return cost[m][n]
else:
if(cost[m][n]>=0):
return cost[m][n] + min( minCost(cost, m-1, n-1),
minCost(cost, m-1, n),
minCost(cost, m, n-1) )
def min(x, y, z):
if (x < y):
return x if (x < z) else z
else:
return y if (y < z) else z
s =input()
b=[list(map(int, x.split("@"))) for x in s.split("#")]
print(minCost(b,len(b),len(b[0])))
Я получаю ответ, отличный от ожидаемого.(Примечание: ввод - это строка типа «1 @ 2 # 1 @ 3 # 1 @ 4», где @ представляет строки, а # представляет столбец)