题目1:62 不同路径
题目链接:62 不同路径
题意
机器人位于m*n网格的左上角每次只能向下或向右移动一步,到达网格的右下角,返回不同路径的数量
动态规划
动规五部曲
1)dp数组及下标i的含义
dp[i][j]:到达(i,j)有dp[i][j]条路径
2)递推公式
dp[i][j] = dp[i-1][j] + dp[i][j-1]
3)dp数组初始化(注意)
根据递推公式 最上面一行要初始化 dp[0][j] = 1 最左面一列要初始化 dp[i][0] = 1
4)遍历顺序
由于dp[i][j]与dp[i-1][j]和dp[i][j-1]有关,从上到下遍历,从左往右遍历
5)打印dp数组

代码
class Solution {
public:
    int uniquePaths(int m, int n) {
        vector<vector<int>> dp(m,vector<int>(n));
        //初始化
        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];
    }
};- 时间复杂度:O(m × n)
- 空间复杂度:O(m × n)
题目2:63 不同路径Ⅱ
题目链接:63 不同路径Ⅱ
题意
机器人位于m*n网格的左上角,每次只能向下或向右移动一步,最终到达右下角,网格中有障碍物,障碍物和空格用1和0表示,不同的路径数量
动态规划
动规五部曲
1)dp数组及下标i的含义
dp[i][j]:到达(i,j)有dp[i][j]条路径
2)递推公式
位置没有障碍才推到 if(obs[i][j]==0) dp[i][j] = dp[i-1][j] + dp[i][j-1]
3)dp数组初始化(注意)
根据递推公式
最上面一行要初始化 if(obs[0][j]==0) dp[0][j] = 1 出现障碍物以及障碍物之后的位置达不到,因为一直向右或向下移动
最左面一列要初始化 if(obs[i][0]==0) dp[i][0] = 1 出现障碍物以及障碍物之后的位置达不到,因为一直向右或向下移动
起始位置有障碍或终止位置有障碍,有0种路径
4)遍历顺序
由于dp[i][j]与dp[i-1][j]和dp[i][j-1]有关,从上到下遍历,从左往右遍历
5)打印dp数组

代码
class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int m = obstacleGrid.size();
        int n = obstacleGrid[0].size();
        if(obstacleGrid[0][0]==1) return 0;
        if(obstacleGrid[m-1][n-1]==1) return 0;
        //定义dp数组
        vector<vector<int>> dp(m,vector<int>(n));
        //初始化dp数组
        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]==0){
                    dp[i][j] = dp[i-1][j] + dp[i][j-1];
                }
            }
        }
        return dp[m-1][n-1];
    }
};- 时间复杂度:O(m × n)
- 空间复杂度:O(m × n)

![[python]基于opencv实现的车道线检测](https://img-blog.csdnimg.cn/direct/8ec3bf45b4f04ab8b7fedc054c530b39.jpeg)
















![[python] os.fork](https://img-blog.csdnimg.cn/direct/03980548ee644be2ab86a045756628d9.png)