Skip to content

Commit c534e77

Browse files
authored
Added minimum cost path algorithm (TheAlgorithms#2135)
* Added maximum path sum for matrix (top left to bottom right) * Changed maximum cost path to minimum cost path + added video explaination
1 parent 8ab84fd commit c534e77

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Youtube Explaination: https://www.youtube.com/watch?v=lBRtnuxg-gU
2+
3+
from typing import List
4+
5+
6+
def minimum_cost_path(matrix: List[List[int]]) -> int:
7+
'''
8+
Find the minimum cost traced by all possible paths from top left to bottom right in
9+
a given matrix
10+
11+
>>> minimum_cost_path([[2, 1], [3, 1], [4, 2]])
12+
6
13+
14+
>>> minimum_cost_path([[2, 1, 4], [2, 1, 3], [3, 2, 1]])
15+
7
16+
'''
17+
18+
# preprocessing the first row
19+
for i in range(1, len(matrix[0])):
20+
matrix[0][i] += matrix[0][i - 1]
21+
22+
# preprocessing the first column
23+
for i in range(1, len(matrix)):
24+
matrix[i][0] += matrix[i - 1][0]
25+
26+
# updating the path cost for current position
27+
for i in range(1, len(matrix)):
28+
for j in range(1, len(matrix[0])):
29+
matrix[i][j] += min(matrix[i - 1][j], matrix[i][j - 1])
30+
31+
return matrix[-1][-1]
32+
33+
34+
if __name__ == "__main__":
35+
import doctest
36+
37+
doctest.testmod()

0 commit comments

Comments
 (0)