最小路徑和

2021-09-07 19:17:09 字數 834 閱讀 2525

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。

說明:每次只能向下或者向右移動一步。

輸入:[

[1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

解釋: 因為路徑 1→3→1→1→1 的總和最小。

(1)動態規劃

1,要明白上邊界線的點只能由它的上乙個點向右移動所得,而左邊界線的點只能從由它的上乙個點向下移動所得;

2,從左上角grid[0][0]到右下角grid[row-1][col-1],遍歷整個陣列grid,然後記錄當前位置grid[i][j]上面所需步數的最小值,一直到遍歷完成;

3,最後拿到的就是grid[row-1][col-1]就是所需的答案;

class solution 

//使用動態規劃,只能向下或者向右移動,當前位置記錄每次經過這個位置路徑上時的最小值(遍歷一遍)

private int dynamic(int grid)

}return grid[row-1][col-1];

}

(2)遞迴法,

1,從陣列的終點開始遞迴,拿到所有可能的情況,最後取得裡面的最小路徑;

2,對邊界線進行特殊處理;

3,遞迴到原點則結束;

class solution 

//遞迴(會超時)

private int dynamic(int grid, int row, int col)

}

注意:遞迴法由於要拿到所有可能,計算龐大,會超時的哦。

最小路徑和

給定乙個只含非負整數的m n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。注意事項 你在同一時間只能向下或者向右移動一步 這道題和之前做的一道三角形的動態規劃差不多,但是更難一些,例a b c d e f g h i 如果要到i就必須從f 或h走,只要選出其中較小的即可,再用遞迴算出走每乙...

最小路徑和

題目 給定乙個包含非負整數的 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的正方形的對角線元素,先...