LeetCode 64 最小路徑和

2021-10-01 23:19:00 字數 1159 閱讀 6957

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

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

輸入:

[ [1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

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

1.假設有個2 × 2的二維陣列a,則a[0][0]到a[1][1]的路徑有a[0][0]到a[0][1]到a[1][1]

和a[0][0]到a[1][0]到a[1][1]

,所以乙個點的大小(路徑)取決於它左邊和上邊的點的大小(路徑);

2.現將第一列和第一行的每個元素都累加為前面所有元素和本身的和(從一維的角度看,陣列【1,2,3】中,第乙個元素到第二個元素的路徑和為3,乙個元素到第三個元素的路徑和為6,此時陣列變為【1,3,6】),此時的二維陣列變為:

[

[1 ,1+3 ,1+3+1],

[1+1 ,5 ,1],

[1+4+1 ,2 ,1]]即,

[ [1,4,5],

[2,5,1],

[6,2,1]

]

3.按照思路一的做法,獲得第乙個元素到每個元素的最短距離(最小累加值),如:

[

[1,4,5],

[2,5+min(4,2),1],

[6,2,1]]||

[ [1,4,5],

[2,7,1+min(5,7)],

[6,2+min(6,7),1]]||

[ [1,4,5],

[2,7,6],

[6,8,1+min(6,8)]]||

[ [1,4,5],

[2,7,6],

[6,8,7]

]

此時的grid[0][0]到grid[2][2]最短的路徑的長度為1+3+1+1+1=7(grid[0][0]——>grid[0][1]——>grid[0][2]——>grid[1][2]——>grid[2][2])

int minpathsum(int** grid, int gridsize, int* gridcolsize)

LeetCode 64 最小路徑和

題目描述 提示幫助 提交記錄 社群討論 閱讀解答 隨機一題 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和...

LeetCode 64 最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。以輸入為 3 3 的網格為例,其中 m 3,n 3 1...

LeetCode 64 最小路徑和

題目 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。解題思路 1 由於路線只向下或者右走,所以在最上...