Я пытаюсь распечатать путь для скрипта LowCost. Я нашел здесь код Найти LowCost Я изменяю только некоторые мелочи.
Скрипт работает, но он дает мне только окончательный вариант.Стоимость;Я также хочу, чтобы он дал мне путь, по которому я пошел.
Вот пример:
[ [1, 2, 3],
[4, 8, 2],
[1, 5, 3] ]
, вот как выглядит путь, он получает 1,2,2,3:
1 - 2 3
..... \
4 8 2
...... |
1 5 3
Я хочу напечатать исправьте путь как Правильно
path : [1,2,2,3]
low cost : 8
Теперь я получаюочень большой результат пути, и он не правильный Неверно!
path : [1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 5, 5, 5]
low cost : 8
Вот код:
import sys
def mymin(a,b,c):
return min(min(a,b),c)
def minCostMain(cost, m, n):
result = []
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:
t1= minCost(cost, m-1, n-1)
t2= minCost(cost, m-1, n)
t3= minCost(cost, m, n-1)
v=mymin(t1,t2,t3)
#this dosen't work get more items
result.append(v)
return cost[m][n] + v
return minCost(cost, m, n),result
cost= [ [1, 2, 3],
[4, 8, 2],
[1, 5, 3] ]
lowcost,path= minCostMain(cost, 2, 2)
print "path : " + str(path)
print "low cost : " + str(lowcost)