給定乙個只含非負整數的m*n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。
注意事項
你在同一時間只能向下或者向右移動一步
這道題和之前做的一道三角形的動態規劃差不多,但是更難一些,
例a b c
d e f
g h i
如果要到i就必須從f 或h走,只要選出其中較小的即可,再用遞迴算出走每乙個格的最小數即可,但第一行第一列特殊處理
class solution:
"""@param: grid: a list of lists of integers
@return: an integer, minimizes the sum of all numbers along its path
"""def minpathsum(self, grid):
l1 = len(grid)
l2 = len(grid[0])
for i in range(1,l1):
grid[0][i] += grid[0][i - 1]
for j in range(1,l2):
grid[j][0] += grid[j - 1][0]
for i in range(1,l1):
for j in range(1,l2):
grid[i][j] += min(grid[i - 1][j],grid[i][j - 1])
return grid[l1 - 1][l2 -1]
最小路徑和
給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。1 動態規劃 1,要明白上邊界線的點只能由它的上乙個點向右移...
最小路徑和
題目 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。動態規劃 用乙個dp m n 表示從開始點到該點...
最小路徑和
給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。看到這一題,第一想法是求2x2的正方形的對角線元素,先...