代码随想录算法训练营Day36| 62.不同路径 , 63. 不同路径 II

由于我最近临近期末考试所以后面两题就先暂时跳过,但是并不是代表我不写,等我暑假会全部补起来,那么来看今天的第一题

62.不同路径:代码随想录

这道题目就是说让你求出到达终点有几种不同的路径,你只能向下或者向右走,那么直接开始我们的动规五部曲!

首先就是dp数组的含义,这里的含义很显然就是到当前点有几种不同的路径,下标表示的就是该点的坐标,然后就是初始化,我就是在初始化这里犯了错误,这里我们是要将数组的第一排和第一列全部初始化为1,因为这些位置全部只能由起点到达,因为题目说了只能向下或者向右走,而我一开始就只是将两个位置初始化了,所以后面就出问题了,这里也再次说明了初始化的重要性,然后就是递推公式,这就非常简单了,很显然,这点只能由上面的点和左边的点到达,所以递归公式就是dp[i][j]=dp[i][j-1]+dp[i-1][j],还需注意的是,我这里遍历的时候下标是从1开始的,所以不需要担心下标越界的问题,遍历顺序就很简单了,因为我们是从当前位置向右和下走,所以肯定是从左往右,从上到下遍历,这就不难写出如下代码

class Solution {
public:int uniquePaths(int m, int n) {int dp[m][n];for(int i=0;i<m;i++){for(int j=0;j<n;j++){dp[i][0]=1;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];}
};

63. 不同路径 II:代码随想录

这道题目和上道题目是一样的,只不过是加了一些障碍物,这就意味着我们需要考虑一些特殊情况,首先就是初始化因为我们知道,如果说起点和终点就有障碍物的话,那肯定是直接返回0了,如果说在第一排或者是第一列出现障碍物,那是不是代表后面的点我都无法到达了,因为这些点只能由起点到达,所以只要我发现了障碍物,我就将后面所有的点都放上障碍物,也就是说后面的点都无法到达了,也就是将相应的数组的值赋值成1,然后就是递推公式的改变,首先如果我们当前遍历的点是障碍物的话,是不是直接continue就可以了,如果不是,我们还要在上面一题的基础上分情况讨论,有障碍物的就不能到达这点,所以我们可以写出如下代码

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

只需要在对应的情况分类讨论即可,这就是今天的内容了,比较少,因为后面两道难题我没时间做,我后面有时间做一定会补上!

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

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

相关文章

介绍几种 MySQL 官方高可用方案

前言&#xff1a; MySQL 官方提供了多种高可用部署方案&#xff0c;从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准&#xff0c;介绍下不同高可用方案架构原理及使用场景。 1.MySQL Replication MySQL Replication 是官方提供的主从同…

2024.06.17校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、提前批 | 中国电科38所2024年暑期开放日暨2025届提前批招聘正式启动&#xff01; 提前批 | 中国电科38所2024年暑期开放日暨2025届提前批招聘正式启动&#xff01; 2、实习 | 舍弗勒实…

HarmonyOS--数据持久化

用户首选项 场景介绍 1、用户首选项为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。当用户希望有一个全局唯一存储的地方&#xff0c;可以采用用户首选项来进行存储。 2、Preferences会将该数据缓存在内存中&a…

Java之使用策略模式替代 if-else

在Java中&#xff0c;通常情况下 if-else 语句用于根据不同条件执行不同的逻辑。而策略模式则是一种设计模式&#xff0c;它允许在运行时选择算法的行为。 策略模式的主要思想是将算法封装成独立的对象&#xff0c;使得它们可以相互替换&#xff0c;使得算法的变化独立于使用算…

模型情景制作-制作一棵树

情景模型中&#xff0c;最常用到的也是最能提升情景中生气的就是树。然而&#xff0c;自然的生长和环境的影响使得树的制作变成了考验制作者观察力的一道考题。制作一棵逼真的树&#xff0c;我们可以参考下面的这种方法。 铁丝制树 您需要准备9—12根铁丝&#xff0c;每根的长…

SuperCopy解决文档不能复制问题

有一些文档&#xff0c;我们要使用时&#xff0c;总是面临收费的情况&#xff0c;让我们不能复制&#xff0c;让人头疼不已&#xff01;&#xff01;&#xff01; SuperCopy就可以解决这个问题。 获取SuperCopy步骤 1. 打开浏览器&#xff0c;点击右上角的三个点 2. 找到扩…

老板电器 45 年的烹饪经验,浓缩在这款烹饪大模型中

在科技不断进步的时代&#xff0c;人工智能&#xff08;AI&#xff09;迅速成为推动各行各业发展的重要力量。家电行业也不例外&#xff0c;根据 Gartner 的报告预测&#xff0c;到 2024 年&#xff0c;AI 家电市场的规模将达到万亿美元级别。这一预估凸显了智能化在家电行业中…

网络安全 DVWA通关指南 Cross Site Request Forgery (CSRF)

DVWA Cross Site Request Forgery (CSRF) 文章目录 DVWA Cross Site Request Forgery (CSRF)DVWA Low 级别 CSRFDVWA Medium 级别 CSRFDVWA High 级别 CSRFDVWA Impossible 级别 CSRF CSRF是跨站请求伪造攻击&#xff0c;由客户端发起&#xff0c;是由于没有在执行关键操作时&a…

selenium网页自动化使用教程

Selenium 是一个流行的自动化测试工具&#xff0c;它支持多种编程语言&#xff0c;包括 Python。以下是关于 Selenium 安装和使用的一些详细步骤&#xff1a; 安装 Selenium&#xff1a; 确保 Python 环境已经安装在你的计算机上。Selenium 支持 Python 2.7 以及 Python 3.2 …

【黑龙江哪些行业需要做等保?】

黑龙江等保测评是衡量企业网络安全水平的一项主要指标&#xff0c;包括&#xff1a;金融&#xff0c;能源&#xff0c;电信&#xff0c;医疗&#xff0c;教育&#xff0c;交通&#xff0c;制造&#xff0c;电商等。 等保测评是黑龙江省信息化建设的重要组成部分&#xff0c;也…

旅游管理系统源码小程序

便捷旅行&#xff0c;尽在掌握 旅游管理系统是一款基于FastAdminElementUNIAPP开发的多端&#xff08;微信小程序、公众号、H5&#xff09;旅游管理系统&#xff0c;拥有丰富的装修组件、多端分享、模板消息、电子合同、旅游攻略、旅游线路及相关保险预订等功能&#xff0c;提…

Code Page 历史

1. Code Page 历史发展 此技术的使用最早追溯到 MS-DOS3.3&#xff08;1987 年 4 月发行&#xff09;向 IBMPC 用户引进了内码表的概念&#xff0c;Windows 也使用此概念。 最初的 IBM 字元集被称作内码表 437&#xff0c;或者&#xff08;MS-DOSLatinUS&#xff09;。内码表…

1961 Springboot自习室预约系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 自习室预约管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库…

大型企业组网如何规划网络

大型企业组网是一个复杂的过程&#xff0c;它需要细致的规划和设计&#xff0c;以确保网络能够满足企业的业务需求&#xff0c;同时保证性能、安全性和可扩展性。以下是规划大型企业网络的一些关键步骤和考虑因素&#xff1a; 1. 需求分析 业务需求&#xff1a;与各个业务部门…

EWM学习之旅-1-EWM100

系统学习一个业务模块已经变得越来越重要&#xff0c;开始吧&#xff0c;EWM&#xff01; EWM的Learning Journey中包括7本 ebook,100/110/115/120/125/130/140&#xff0c;一本一本的啃吧&#xff0c;相信很多内容是重复的。 EWM100很适合初学者&#xff0c;了解概念术语&…

Lesson 40 What are you going to do?

Lesson 40 What are you going to do? 词汇 show v. 展示&#xff0c;展出 搭配&#xff1a;show人东西    show东西to人 口语&#xff1a;Show me your hands! 拿出来&#xff01; n. 秀&#xff0c;表演 搭配&#xff1a;talk show 脱口秀    show room 展厅 take v…

高级同步机制:Phaser与CountDownLatch详解

在Java并发编程中&#xff0c;同步机制是确保多线程环境下数据一致性和程序正确性的关键。Java提供了多种同步工具&#xff0c;其中Phaser和CountDownLatch是两个强大的工具&#xff0c;它们可以帮助我们更好地控制线程的执行顺序和同步。 1. CountDownLatch CountDownLatch是…

BPF:BCC工具 funccount 统计内核函数调用(内核函数、跟踪点USDT探针)认知

写在前面 博文内容涉及BCC工具 funccount 认知funccount 可以帮助用户追踪和分析Linux系统上特定函数、系统探针或USDT探针的运行次数。这对于性能分析、故障排查和系统优化等场景非常有用。理解不足小伙伴帮忙指正 &#x1f603;,生活加油 不必太纠结于当下&#xff0c;也不必…

byte[]、MultipartFile、File转换

需求背景 当你需要将byte[]、MultipartFile、File实现互转时&#xff0c;无外乎以下场景&#xff1a; 保存第三方接口返回二进制流 前/后端文件流上传 微服务间调用 文件格式转换 byte[]转MultipartFile 错误示例-MockMultipartFile 首先来看一下摘自Spring官网对MockM…

精益生产推进时如何营造持续变革的氛围?

在快速变化的市场环境中&#xff0c;企业如何保持竞争力&#xff1f;精益生产无疑为众多企业提供了一个强大的战略工具。但是&#xff0c;单纯的引入精益生产理念和方法并不能保证企业的持续成功。关键在于如何营造一种持续变革的氛围&#xff0c;让精益生产成为推动企业不断前…