代码随想录刷题60Day
目录
前言
不同路径
不同路径(2)
前言
今天的动态规划题与昨天的题很类似,只不过今天的题是在二维上讨论,难度上略有提升。
不同路径
int uniquePaths(int m, int n) {vector<int> dp(n + 1, 1);for (int i = 1; i < m; ++i){for (int j = 2; j <= n; ++j)dp[j] = dp[j] + dp[j - 1];}return dp[n];}
不同路径(2)
有一些测试用例比较极端,需要注意一些细节。
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {if (obstacleGrid[0][0])return 0;int size = obstacleGrid[0].size();vector<int> dp(size + 1, 0);dp[1] = 1;for (int i = 0; i < obstacleGrid.size(); ++i){if (obstacleGrid[i][0])dp[1] = 0;for (int j = 2; j <= size; ++j){ if (obstacleGrid[i][j - 1])dp[j] = 0;else if (i > 0)dp[j] = dp[j] + dp[j - 1];elsedp[j] = dp[j - 1];}}return dp[size];}