【学会动态规划】不同路径 II(6)

news2024/11/25 12:38:04

目录

动态规划怎么学?

1. 题目解析

2. 算法原理

1. 状态表示

2. 状态转移方程

3. 初始化

4. 填表顺序

5. 返回值

3. 代码编写

写在最后:


动态规划怎么学?

学习一个算法没有捷径,更何况是学习动态规划,

跟我一起刷动态规划算法题,一起学会动态规划!

1. 题目解析

题目链接:63. 不同路径 II - 力扣(Leetcode)

 这道题目也不难理解,相比之前的不同路径,

这道题添加了障碍物,题目给了我们一个二维的矩阵,

通过示例我们可以得知:

没有障碍物的位置就是初始化成0,有障碍物的位置就是1

而有障碍物的位置不能走,然后还是求路径数量。

2. 算法原理

1. 状态表示

 dp[ i ][ j ] 就表示到[ i,j ]的时候,一共有多少种方法。

2. 状态转移方程

如果是没有障碍物的,我们就让:

dp[ i ][ j ] = dp[ i - 1 ][ j ] + dp[ i ][ j - 1 ]

如果有障碍,就让dp[ i ][ j ]  = 0 表示这种路径不存在。

3. 初始化

我们多加一行和一列的虚拟节点,防止出现越界的情况,

把它们初始化成0,但是要保证第一个节点初始化成1.

4. 填表顺序

从左往右,从上往下。

5. 返回值

dp[ m ][ n ] ,终点作为返回值。

3. 代码编写

class Solution {
public:
    int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {
        int m = obstacleGrid.size(), n = obstacleGrid[0].size();
        vector<vector<int>> dp(m + 1, vector<int>(n + 1));
        dp[0][1] = 1;
        for(int i = 1; i <= m; i++) {
            for(int j = 1; j <= n; j++) {
                if(obstacleGrid[i - 1][j - 1] == 1) continue;
                else dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
        return dp[m][n];
    }
};

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/765886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

v-model绑定的数据与接收到的数据类型不一致引发的bug

在使用v-model的过程中 当页面渲染需要的数据类型与data中定义的数据类型不一致时&#xff0c;页面是不会进行响应式对应渲染的、 如:1:绑定的是string的时候&#xff0c;在定义时是number类型 也会导致页面不更新 2:列表下拉框的选中的数据若定义的是number的话&#xff0c;传…

静电接地桩的使用和维护

静电接地桩&#xff0c;也称为静电防护接地桩或静电消散接地桩&#xff0c;是一种用于防止静电积聚和降低电荷积聚的设备。它主要通过将静电荷导引到地下&#xff0c;实现静电的释放和中和。 静电接地桩通常由导电材料制成&#xff0c;如铜、铝等金属材料。它们通常以垂直方式…

目标追踪的方向分析

方向分析 目标运动方向分析的一种最常用方法是光流法&#xff0c;光流法通过相邻两帧图像中光流近似目标的运动。光流法比较适于估计较短时间内的目标运动趋势&#xff08;如相邻几帧&#xff09;&#xff0c;且光流法对图像噪声非常敏感&#xff0c;如下图&#xff0c;为…

矩阵AB和BA的特征值相同

手写的&#xff0c;如下图&#xff1a; 即可证明&#xff0c;矩阵AB的特征值和BA的特征值相同。 关于矩阵转置和逆矩阵混合运算&#xff0c;有如下规律&#xff1a;

Ubuntu关闭自动休眠

一、查看当前休眠模式 使用systemctl status sleep.target 命令查看当前休眠模式&#xff0c;结果如下图&#xff0c;sleep状态为enabled&#xff0c;表示自动休眠模式开启。 二、关闭自动休眠模式 使用sudo systemctl mask sleep.target suspend.target 关闭休眠模式 三…

力扣算法数学类—最大交换

目录 最大交换 题解&#xff1a; 代码&#xff1a; 最大交换 670. 最大交换 - 力扣&#xff08;LeetCode&#xff09; 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 …

没看完这篇文章,别说你会用WBS

大家好&#xff0c;我是老原。 为什么很多人明明有了很多工具和方法&#xff0c;还是做不好工作&#xff1f; 有没有想过&#xff0c;什么样的人才是“会工作“ 的人&#xff1f; 罗振宇在启发俱乐部里&#xff0c;对“会工作”做了一个解释。 “会工作的人&#xff0c;就是…

一种自平衡解决数据倾斜的分表方法

1、背景 这篇主要描述了B端令牌系统应用数据分表解决业务数据量增大&#xff0c;且存在的数据倾斜问题&#xff0c;主要面向的场景是一对多数据倾斜问题 1&#xff09;B令牌的业务背景 先简述一下B令牌的业务背景&#xff0c;B令牌系统是用于营销场景中&#xff0c;将许多用…

写给后端开发的『vue3』请求后端接口

本文分享一下在vue3前端项目中请求后端接口获取数据。比较简单&#xff0c;内容如下&#xff1a; 1、使用axios请求后端接口 首先npm install axios&#xff0c;添加axios依赖&#xff0c;就靠它来请求后端接口了&#xff0c;基本等同于使用jquery发ajax。 # src/main.js i…

制作Ubuntu20.04系统盘教程

下载ios系统镜像&#xff1a;http://releases.ubuntu.com/20.04/ 下载启动盘制作工具&#xff1a;http://rufus.ie/downloads/ 安装后&#xff0c;在如下软件界面进行U盘系统的写入&#xff1a;

strcmp函数和strncmp函数【C语言】

strcmp函数和strncmp函数 strcmp函数一、strcmp函数的简介二、strcmp函数的功能三、strcmp函数的使用四、strcmp函数的模拟 strncmp函数一、strncmp的简介二、strncmp函数的功能三、strncmp函数的使用 strcmp函数 一、strcmp函数的简介 strcmp函数在库函数中的定义&#xff1…

STM32 ADC基础知识讲解

文章目录 前言一、ADC的基本介绍二、STM32 ADC讲解1.ADC分辨率2.ADC通道讲解3.ADC转换模式单次转换模式连续转换模式 4.扫描模式5.数据对齐方式左对齐右对齐 总结 前言 在正式的学习如何编写ADC代码时我们先来学习一下ADC的基础知识部分&#xff0c;只有掌握好了这些基础知识才…

打造i-SMART智能网联平台,亚马逊云科技助力上汽快速出海

当前在各大外资车企不断加码在华投资之际&#xff0c;越来越多的中国汽车品牌纷纷开始走出国门&#xff0c;加速推进全球化业务&#xff0c;将赛道转至更为广阔的海外市场。 上汽海外出行科技有限公司&#xff08;简称“上汽海外出行”&#xff09;成立于2018年&#xff0c;承…

华为OD机试真题 Java 实现【挑选字符串】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题…

vue的生命周期和执行顺序

1&#xff0c;Vue 生命周期都有哪些&#xff1f; 序号生命周期描述1beforecreate创建前vue实例初始化阶段&#xff0c;不可以访问data,methods&#xff1b; 此时打印出的this是undefined&#xff1b;2created创建后vue实例初始化完成&#xff0c;可以访问data&#xff0c;meth…

postgresql部署及优化

目录 一、postgresql概念 二、PostgreSQL 特征 三、postgres安装与登录 3.1、postgres安装 3.2、postgres使用 3.3.1、postgres登录 3.3.2、修改postgres用户密码 四、PostgreSQL 命令 4.1、PostgreSQL 创建数据库 4.2、删除数据库 4.3、创建表格 4.4、删除表格 一、…

Bard:Google AI的下一代语言模型,支持多语言、语音朗读、图片解析和更多

说起时下火爆的生成式AI&#xff0c;并不是只有ChatGPT。Bard也是一个很优秀的产品&#xff0c;并且刚刚发布的很多有趣的新功能。文末告诉你如何访问Bard。 Google AI在最近的更新中发布了Bard&#xff0c;一个新的语言模型。Bard支持多种语言&#xff0c;包括中文&#xff0…

Hadoop和hive一键启动脚本

#!/bin/bashcd $HADOOP_HOME/sbinsh ./start-all.shcd $HIVE_HOME/binnohup hive --service metastore & 停止hadoop服务 #!/bin/bashcd $HADOOP_HOME/sbinsh ./stop-all.sh 停止hive服务

Stability AI 把绘画门槛打为 0!

本文由 GPT- 4 所创作&#xff0c;配图由 Stable Doodle 生成。 编者按 Stability AI 上新了&#xff01; 其收购的 Clipdrop 发布了全新的 Stable Doodle 工具&#xff0c;我在使用后最为直观的感受就是 —— 把绘画门槛打下来了。 在 Stable Doodle 之前&#xff0c;使用各…

大型企业数字化信创论坛启幕,金蝶携手500强企业论道数字化变革!

7月14日&#xff0c;“数字中国第二届大型企业数字化信创论坛”在数字化新城成都盛大启幕&#xff0c;中国信通院、金蝶携手来自四川省企业联合会、物产中大集团、浙江省交通投资集团、华彩咨询、四川九洲集团、资阳发展投资集团的大咖、专家论道信创&#xff0c;探索中国企业的…