LEETCODE 62. Unique Paths LEETCODE 63. Unique Paths II

来源:互联网 发布:将表单数据转成json 编辑:程序博客网 时间:2024/05/22 04:36

题目大意

62题给出表格的大小,m是行数,n是列数,求从左上角到右下角可达路径的数量;63题在62题的基础上加上了obstacle的限制,需要处理的情况增加不少,需要注意。

62题原题

这里写图片描述

63题原题

这里写图片描述

代码

62题

class Solution {public:    int uniquePaths(int m, int n) {        const int rowSize = m;        const int colSize = n;        int statusTable[rowSize][colSize];        if (m <= 1 || n <= 1) {            return 1;        }        for (int i = 0; i < rowSize; i++) {            for (int j = 0; j < colSize; j++) {                if (i == 0 || j == 0) {                    statusTable[i][j] = 1;                } else {                    statusTable[i][j] = statusTable[i - 1][j] + statusTable[i][j - 1];                }            }        }        return statusTable[rowSize - 1][colSize - 1];    }};

63题

class Solution {public:    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {        if (obstacleGrid.size() < 1 || obstacleGrid[0].size() < 1) {            return 1;        }        for (int i = 0; i < obstacleGrid.size(); i++) {            for (int j = 0; j < obstacleGrid[i].size(); j++) {                if (obstacleGrid[i][j] == 1) {                    obstacleGrid[i][j] = 0;                } else if (i == 0 && j == 0) {                    obstacleGrid[i][j] = 1;                }else if (i == 0) {                    obstacleGrid[i][j] = obstacleGrid[i][j - 1];                } else if (j == 0) {                    obstacleGrid[i][j] = obstacleGrid[i - 1][j];                }                else {                    obstacleGrid[i][j] = obstacleGrid[i - 1][j] + obstacleGrid[i][j - 1];                }            }        }        return obstacleGrid[obstacleGrid.size() - 1][obstacleGrid[0].size() - 1];    }};
0 0
原创粉丝点击