题目链接:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
求解思路:
动规五部曲
代码:
- class Solution {
- public:
- int uniquePaths(int m, int n) {
- vector
int>> dp(m, vector<int>(n,0)); - // 将第一行和第一列初始化为1,因为只有一种路径
- for (int i = 0; i < m; i++) dp[i][0] = 1;
- for (int j = 0; j < n; j++) dp[0][j] = 1;
- for (int i = 1; i < m; i++){
- for (int j = 1; j < n; j++){
- // 只能从左边或者上边过来
- dp[i][j] = dp[i-1][j] + dp[i][j-1];
- }
- }
- return dp[m-1][n-1];
- }
- };
题目链接:
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
求解思路:
动规五部曲
代码:
- class Solution {
- public:
- int uniquePathsWithObstacles(vector
int >>& obstacleGrid) { - int m = obstacleGrid.size();
- int n = obstacleGrid[0].size();
- vector
int>> dp(m, vector<int>(n, 0)); - for (int i = 0; i < m && obstacleGrid[i][0] == 0; i++) dp[i][0] = 1;
- for (int j = 0; j < n && obstacleGrid[0][j] == 0; j++) dp[0][j] = 1;
- for (int i = 1; i < m; i++){
- for (int j = 1; j < n; j++){
- if (obstacleGrid[i][j] == 1) continue;
- dp[i][j] = dp[i-1][j] + dp[i][j-1];
- }
- }
- return dp[m-1][n-1];
- }
- };