64 Minimum Path Sum

dp[row - 1][col - 1] 表示從 [0][0] 到 [row-1][col-1] 位置上加起來的最小的和。所以dp遞推公式如下:

  • dp[x,y] = grid[x][y] + max{ dp[x-1][y], dp[x][y-1] } , x>=1, y>=1
  • dp[0][0] = grid[0][0]
  • dp[0][y] = dp[0][y-1] + grid[0][y], y>=1
  • dp[x][0] = dp[x-1][0] + grid[x][0], x>=1

最后的結(jié)果就是:dp[row-1][col-1]

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int row = (int)grid.size();
        
        if (row == 0)
        {
            return 0;
        }
        
        int col = (int)( grid[0].size() );
        
        if (col == 0)
        {
            return 0;
        }
        
        // make sure row >= 1 && col >= 1
        for (int i = 1; i < col; i++)
        {
            (grid[0])[i] = (grid[0])[i - 1] + (grid[0])[i];
        }
        
        for (int i = 1; i < row; i++)
        {
            (grid[i])[0] = (grid[i-1])[0] + (grid[i])[0];
        }
        
        for (int i = 1; i < row; i++)
        {
            for (int j = 1; j < col; j++)
            {
                (grid[i])[j] = (grid[i])[j] + min(grid[i-1][j], grid[i][j-1]);
            }
        }
        
        return grid[row-1][col-1];
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容