64. Minimum Path Sum Medium

求到達右下角的路徑,使得路徑上數的和最小。比較簡單。每一個位置你選擇從上面來更小還是左邊來更小就好。

class Solution {
public:
    int minPathSum(vector<vector<int>>& grid) {
        int m = grid.size(), n = grid[0].size();
        int d[m][n];
        for (int i = 0; i < m; ++i)
        {
        	for (int j = 0; j < n; ++j)
        	{
        		if(i == 0 && j == 0)d[i][j] = grid[0][0];
        		else if (i == 0 && j != 0)
        		{
        			d[i][j] = d[i][j - 1] + grid[i][j];
        		}
        		else if (j == 0 && i != 0)
        		{
        			d[i][j] = d[i - 1][j] + grid[i][j];
        		}
        		else {
        			d[i][j] = min(d[i - 1][j], d[i][j - 1]) + grid[i][j];
        		}
        	}
        }
        return d[m - 1][n - 1];
    }
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章