当前位置: 首页 > article >正文

代码随想录训练营第34天| 62.不同路径 、63. 不同路径 II

一、不同路径

1.利用五步走的方式

不难想到dp是二维的,并且表示为到每一个格子的路径

主要是初始化,初始化第一排和第一列

代码:

class Solution {
public:
    int uniquePaths(int m, int n) {
        //dp[m,n]为到第m,n位置有多少种路径
        vector<vector<int>> dp(m,vector<int>(n, 0));
        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];
    }
};

二、不同路径 II 

1.和上一题主要是初始化,第一排有障碍后之后格子的路径为0

障碍物处路径为0

代码:

class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        //dp[m,n]为到第m,n位置有多少种路径
        int m=obstacleGrid.size();
        int n=obstacleGrid[0].size();
        vector<vector<int>> dp(m,vector<int>(n, 0));
        //遇到障碍则不初始化,因为后面为0
        for (int i = 0; i < m&&obstacleGrid[i][0]!=1; i++) dp[i][0] = 1;
        for (int j = 0; j < n&&obstacleGrid[0][j]!=1; j++) dp[0][j] = 1;
        //从上到下,从左到右
        for(int i=1;i<m;i++)
        {
            for(int j=1;j<n;j++)
            {
                //障碍处的路径为0,遇到障碍,跳过,进入下一个格子更新
                if (obstacleGrid[i][j] == 1) continue;
                dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
        return dp[m-1][n-1];
    }
};


http://www.kler.cn/a/312915.html

相关文章:

  • Debezium系列之:发件箱事件路由器
  • DHCP与DNS安全管理
  • uniapp的基本使用(easycom规范和条件编译)和uview组件的安装和使用
  • ReactPress:构建高效、灵活、可扩展的开源发布平台
  • 天地图入门|标注|移动飞行|缩放,商用地图替换
  • 【C++类型转换和IO流】
  • 【STL】map和set相关知识详细梳理
  • 4、论文阅读:基于深度学习和成像模型的水下图像增强
  • 21、Tomato
  • weblogic CVE-2017-3506 靶场攻略
  • 【随手笔记】使用J-LINK读写芯片内存数据
  • C++——类和对象
  • 鸿蒙HarmonyOS之使用ArkTs语言获取应用版本等信息
  • AI健身体能测试之基于paddlehub实现引体向上计数个数统计
  • 享元模式详解:解锁高效资源管理的终极武器
  • 技术美术百人计划 | 《4.1 Bloom算法》笔记
  • 【图像检索】基于傅里叶描述子的形状特征图像检索,matlab实现
  • 新品亮相|美格智能SLM530/SLM530P智能模组,助力金融新零售智慧升级
  • 线性规划中可行域为什么一定是凸的--证明
  • Vue2中路由的使用
  • 软件设计画图,流程图、甘特图、时间轴图、系统架构图、网络拓扑图、E-R图、思维导图
  • 高速CT滑环的特点分析
  • 在Python中优雅地打开和操作RDS
  • macOS平台(intel)编译MAVSDK安卓平台SO库
  • 《Discriminative Class Tokens for Text-to-Image Diffusion Models》ICCV2023
  • 【GitHub】如何将本地项目推送到GitHub 终端 or IDEA