python棋盘最短路径_【leetcode】64. Minimum Path Sum 棋盘最短路径
1. 題目
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.
2. 思路
從右下往左上移動,每次計算當前點到右下的最短。
f[i, j] = grid[i, j] + min(f[i+1,j], f[i,j+1])
下邊和右邊兩條邊線進行特殊處理。
3. 代碼
class Solution {
public:
// 同63題的遞歸或迭代方案, 避免超時直接采用迭代實現
int minPathSum(vector>& grid) {
int m = grid.size();
if (m == 0) { return 0; }
int n = grid[0].size();
if (n == 0) { return 0; }
int sol[m+1][n+1];
sol[m-1][n] = 0;
sol[m][n-1] = 0;
int int_max = numeric_limits::max();
for (int i = m-2; i >= 0; i--) {
sol[i][n] = int_max;
}
for (int j = 0; j < n - 1; j++) {
sol[m][j] = int_max;
}
for (int i = m-1; i >= 0; i--) {
for (int j = n-1; j >= 0; j--) {
sol[i][j] = grid[i][j] + min(sol[i+1][j], sol[i][j+1]);
}
}
return sol[0][0];
}
};
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python棋盘最短路径_【leetcode】64. Minimum Path Sum 棋盘最短路径的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: android mkdirs 不起作用,
- 下一篇: 顺序串的实现
