Skip to content

Commit 7fd8b4a

Browse files
committed
最小路径和
1 parent 40c4984 commit 7fd8b4a

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

minimum_path_sum.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# -*- coding: utf-8 -*-
2+
3+
class Solution:
4+
"""
5+
@param grid: a list of lists of integers.
6+
@return: An integer, minimizes the sum of all numbers along its path
7+
"""
8+
def minPathSum(self, grid):
9+
# write your code here
10+
rows, cols = len(grid), len(grid[0])
11+
self.min_paths = [[-1] * cols for row in xrange(rows)]
12+
self.min_paths[0][0] = grid[0][0]
13+
return self.dfs(grid, rows - 1, cols - 1)
14+
15+
def dfs(self, grid, row, col):
16+
if self.min_paths[row][col] >= 0:
17+
return self.min_paths[row][col]
18+
if (row >= 1) and (col >= 1):
19+
dist = grid[row][col] + min(self.dfs(grid, row - 1, col), self.dfs(grid, row, col - 1))
20+
elif row >= 1:
21+
dist = grid[row][col] + self.dfs(grid, row - 1, col)
22+
elif col >= 1:
23+
dist = grid[row][col] + self.dfs(grid, row, col - 1)
24+
self.min_paths[row][col] = dist
25+
return dist

0 commit comments

Comments
 (0)