Leetcode(62)(63) Unique Paths I II

来源:互联网 发布:unity3d 室内场景资源 编辑:程序博客网 时间:2024/05/22 11:54

经典的动态规划问题,Unique Paths I按如下方式填表,Unique Paths II稍微变化即可。

填表方式

Unique Paths I 代码如下

class Solution {public:    int uniquePaths(int m, int n) {        vector<vector<int>> matrix(m, vector<int>(n));        for(int column = 0; column < n; column++)            matrix[m - 1][column] = 1;        for(int row = 0; row < m; row++)            matrix[row][n - 1] = 1;        for(int row = m - 2; row >= 0; row--) {            for(int column = n - 2; column >= 0; column--) {                matrix[row][column] = matrix[row][column + 1] + matrix[row + 1][column];            }        }        return matrix[0][0];    }};

Unique Paths II 代码如下

class Solution {public:    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {        int m = obstacleGrid.size();        int n = obstacleGrid[0].size();        if(1 == m && 1 == n) {            if(1 == obstacleGrid[0][0])                return 0;            else                 return 1;        }        vector<vector<int>> matrix(m, vector<int>(n));        if(1 ==obstacleGrid[m - 1][n - 1])            matrix[m - 1][n - 1] = 0;        else            matrix[m - 1][n - 1] = 1;        for(int column = n - 2; column >= 0; column--) {            if(1 == obstacleGrid[m - 1][column])                matrix[m - 1][column] = 0;            else                matrix[m - 1][column] = matrix[m - 1][column + 1];        }        for(int row = m - 2; row >= 0; row--) {            if(1 == obstacleGrid[row][n - 1])                matrix[row][n - 1] = 0;            else                matrix[row][n - 1] = matrix[row + 1][n - 1];        }        for(int row = m - 2; row >= 0; row--) {            for(int column = n - 2; column >= 0; column--) {                if(1 == obstacleGrid[row][column]) {                    matrix[row][column] = 0;                }else {                    matrix[row][column] = matrix[row][column + 1] + matrix[row + 1][column];                }            }        }        return matrix[0][0];    }};
0 0
原创粉丝点击