human
Solve in Python:
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

Example:

Input:
[
  [1,3,1],
  [1,5,1],
  [4,2,1]
]
Output: 7
Explanation: Because the path 1→3→1→1→1 minimizes the sum.
assistant
#Here is Python code to find a path from top left to bottom right which minimizes the sum of all numbers along its path.

class Solution:
     def minPathSum(self, grid):
         """
         :type grid: List[List[int]]
         :rtype: int
         """
         height = len(grid)
         width = len(grid[0])
         step_num = (height + width) - 2
         for step in range(1, step_num+1):
             for row in range(height):
                 col = step - row
                 if 0 <= row < height and 0 <= col < width:
                     if not row:
                         grid[row][col] += grid[row][col-1]
                     elif not col:
                         grid[row][col] += grid[row-1][col]
                     else:
                         grid[row][col] += min(grid[row][col-1], grid[row-1][col])
         return grid[-1][-1]