LeetCode 63. 不同路径 II

63. 不同路径 II

在这里插入图片描述

思路:

动态规划
dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径
根据题意,只能向下或者向右移动一步,则dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
但是,如果(i, j) 处有障碍,则dp[i][j] = 0
最后求得dp[n-1][m-1]即为从左上角到右下角路径数
注意:在对dp数组进行初始化时,如果遇到了障碍,那么在障碍位置上及之后位置上的dp值都应该为0

代码:

#include<stdio.h>
#include<vector>
#include<string.h>
#include<string>
#include<algorithm>
using namespace std;class Solution
{
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid){int dp[105][105];memset(dp,0,sizeof(dp));// 行数int n=obstacleGrid.size();// 列数int m=obstacleGrid[0].size();for(int i=0; i<n; ++i)if(obstacleGrid[i][0]!=1)dp[i][0]=1;elsebreak;for(int j=0; j<m; ++j)if(obstacleGrid[0][j]!=1)dp[0][j]=1;elsebreak;for(int i=1; i<n; ++i)for(int j=1; j<m; ++j)if(obstacleGrid[i][j]!=1)dp[i][j]=dp[i-1][j]+dp[i][j-1];return dp[n-1][m-1];}
};int main()
{vector<vector<int>> num={{1,0},{0,0}};Solution *solution=new Solution();int ans=solution->uniquePathsWithObstacles(num);printf("%d\n",ans);delete(solution);return 0;
}

总结:刚开始写这道题时,在对dp数组进行初始化时没有考虑到障碍之后就没路了...(在此记录)

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

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

相关文章

第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库

文章目录 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 如果需要将数据从一个数据库移动到另一个数据库&#xff0c;请执行以下操作&#xff1a; 识别包含数据及其索引的Global。 如果…

Android 13.0 首次开机进入Launcher3前黑屏几秒的几种情况问题的总结

1.概述 在13.0的系统产品定制化工作中,对于系统开发确实有些难度,特别是在开机阶段遇到的问题,比如开机动画播放完毕进入锁屏界面黑屏几秒然后进入 锁屏界面,这就需要根据开机日志来分析问题所在,在工作中遇到的几种黑屏情况做下记录,然后供以后解决问题做参考 2.首次开…

Java String之正则表达式

Java String之正则表达式 导言 最近做项目时&#xff0c;遇到了限制输入字符格式的问题&#xff0c;采用了Java String的正则表达式&#xff0c;下面针对正则表达式使用进行概述 正则表达式 正则表达式类似可以通俗的理解为字符模板&#xff0c;通过符号的方式进行表述&…

uni-app--》基于小程序开发的电商平台项目实战(五)

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

Fetch与Axios数据请求

什么是Polyfill? Polyfill是一个js库&#xff0c;主要抚平不同浏览器之间对js实现的差异。比如&#xff0c;html5的storage(session,local), 不同浏览器&#xff0c;不同版本&#xff0c;有些支持&#xff0c;有些不支持。Polyfill&#xff08;Polyfill有很多&#xff0c;在Gi…

IDEA spring-boot项目启动,无法加载或找到启动类问题解决

问题描述&#xff1a;找不到或无法加载主类 xxx.xxx.xxx.Classname 解决方案&#xff1a; 1.检查启动设置&#xff1a; 启动类所在包运行环境&#xff08;一般选择默认即可&#xff09;设置完成即可进行运行测试 2.如果第一步没有解决问题&#xff0c;试着第二步&#xff1a…

常见三维建模软件有哪些?各自的特点是什么?

常见的三维建模软件包括以下这些&#xff1a; 1. 3DS Max 3D Studio Max&#xff0c;简称3DS MAX&#xff0c;是当今世界上销售量最大的三维建模、动画及渲染软件。它的应用范围广泛&#xff0c;包括计算机游戏中的动画制作、影视片的特效制作等。3DS MAX的操作相对容易&#…

【学习笔记】RabbitMQ02:交换机,以及结合springboot快速开始

参考资料 RabbitMQ官方网站RabbitMQ官方文档噼咔噼咔-动力节点教程 文章目录 四、RabbitMQ &#xff1a;Exchange 交换机4.1 交换机类型4.2 扇形交换机 Fanout Exchange4.2.1 概念4.2.1 实例&#xff1a;生产者4.2.1.1 添加起步依赖4.2.1.2 配置文件4.2.1.3 JavaBean进行配置4.…

iMazing 3中文版功能介绍免费下载安装教程

iMazing 3中文版免费下载是一款兼容Win和Mac的iOS设备管理软件。iMazing 3能够将音乐、文件、消息和应用等数据从任何 iPhone、iPad 或 iPod 传输到 Mac 或 PC 上。 使用iMazing 3独特的 iOS 备份功能保证数据安全:设定自动无线备份时间并支持快照;将备份保存到外接驱动器和网…

Halcon Camera-calibration 相关算子(二)

(1) set_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName, DataValue : ) 功能&#xff1a;在标定数据模型中设置数据。 控制输入参数1&#xff1a;CalibDataID&#xff1a;标定数据模型句柄&#xff1b; 控制输入参数2&#xff1a;ItemType&#xff1a;标定数据…

HFSS中激励方式学习笔记(总)

HFSS中激励方式 文章目录 HFSS中激励方式波端口激励&#xff08;Wave Port&#xff09;集总端口激励&#xff08;Lumped Port&#xff09;floquet端口激励&#xff08;floquet Port&#xff09;入射波激励&#xff08;Incident Port&#xff09;电压源激励&#xff08;Voltage …

17 - 并发容器的使用:识别不同场景下最优容器

在并发编程中&#xff0c;我们经常会用到容器。今天我要和你分享的话题就是&#xff1a;在不同场景下我们该如何选择最优容器。 1、并发场景下的 Map 容器 假设我们现在要给一个电商系统设计一个简单的统计商品销量 TOP 10 的功能。常规情况下&#xff0c;我们是用一个哈希表…

如何通过Photoshop将视频转换成GIF图片

一、应用场景 1、将视频转有趣动图发朋友圈 2、写CSDN无法上传视频&#xff0c;而可以用GIF动图替代 3、其他 二、实现步骤 1、打开Photoshop APP 2、点击文件——导入——视频帧到图层 3、选择视频文件 4、配置视频信息&#xff0c;按照图片提示配置完毕之后点击确定&…

c#调用CUDA执行YOLOV5对象检测

c#使用调YOLOV5对象检测&#xff0c;并调用CUDA进行计算 1.CUDA版本11.2 2.cuDNN用cudnn-windows-x86_64-8.9.3.28_cuda11-archive 记得把压缩包的三个文件夹放到cuda根目录下覆盖 3.Microsoft.ML.OnnxRuntime.Gpu要使用1.13.1,如果版本太新&#xff0c;SessionOptions会报…

C# Winform编程(4)多文档窗口(MDI)

多文档窗口&#xff08;MDI&#xff09; 添加菜单&#xff0c;IsMdiContainer设为True: From窗口添加菜单 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using S…

snk-给github界面加一个有趣的动画

How to enable GitHub Actions on your Profile README for a snake-eating contribution graph &#x1f40d; - DEV Community Platane/Platane (github.com) ① 创建New repository 名字和你自己的Github 用户名一样。 ② 创建之后&#xff0c;再这个Zero-coder仓库下创建…

从javascript到vue再到react的演变

当提到前端开发中的框架时&#xff0c;JavaScript、Vue.js和React.js是三个最常见的名词。它们代表了Web开发中不同的技术选择和演变过程。本文将探讨JavaScript从原生到Vue.js再到React.js的演变&#xff0c;以及每个阶段的特点和优势。 JavaScript: 动态语言的基础 JavaScr…

学信息系统项目管理师第4版系列29_信息系统治理

1. IT治理 1.1. 描述组织采用有效的机制对信息技术和数据资源开发利用&#xff0c;平衡信息化发展和数字化转型过程中的风险&#xff0c;确保实现组织的战略目标的过程 1.2. 驱动因素 1.2.1. 信息孤岛 1.2.2. 信息资源整合目标空泛 1.3. 高质量IT治理因素 1.3.1. 良好的I…

Flask框架配置celery-[1]:flask工厂模式集成使用celery,可在异步任务中使用flask应用上下文,即拿即用,无需更多配置

一、概述 1、celery框架和flask框架在运行时&#xff0c;是在不同的进程中&#xff0c;资源是独占的。 2、celery异步任务如果想使用flask中的功能&#xff0c;如orm&#xff0c;是需要在flask应用上下文管理器中执行orm操作的 3、使用celery是需要使用到中间件的&#xff0…

element 表单自定义效验规则

效验规则js let matching (value, callback, reg, message) > {if (value "" || value undefined || value null) {callback(new Error(message));} else {if (!reg.test(value)) {callback(new Error(message));} else {callback();}} }; module.exports {…