📜  最小成本路径的Python程序

📅  最后修改于: 2021-04-27 18:52:49             🧑  作者: Mango

``````# Dynamic Programming Python implementation of Min Cost Path
# problem
R = 3
C = 3

def minCost(cost, m, n):

# Instead of following line, we can use int tc[m + 1][n + 1] or
# dynamically allocate memoery to save space. The following
# line is used to keep te program simple and make it working
# on all compilers.
tc = [[0 for x in range(C)] for x in range(R)]

tc[0][0] = cost[0][0]

# Initialize first column of total cost(tc) array
for i in range(1, m + 1):
tc[i][0] = tc[i-1][0] + cost[i][0]

# Initialize first row of tc array
for j in range(1, n + 1):
tc[0][j] = tc[0][j-1] + cost[0][j]

# Construct rest of the tc array
for i in range(1, m + 1):
for j in range(1, n + 1):
tc[i][j] = min(tc[i-1][j-1], tc[i-1][j],
tc[i][j-1]) + cost[i][j]

return tc[m][n]

# Driver program to test above functions
cost = [[1, 2, 3],
[4, 8, 2],
[1, 5, 3]]
print(minCost(cost, 2, 2))

# This code is contributed by Bhavya Jain
``````

``````8
``````