代码随想录算法训练营第四十二天 | 62.不同路径、63. 不同路径 II

62.不同路径

代码随想录

视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili

解题思路

 

1.dp[i][j]表示从00走到ij有多少种方式

2. ij可以由i-1,j往右走一步,或者i,j-1往想下走一步,因此

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

3.初始化,第0行和第0列要初始化,因为其他的都是由左和上方向相加而来的

4.从上往下,从左往右遍历,因为初始值在上面和左面

class Solution {
public:int uniquePaths(int m, int 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];}
};
  • 时间复杂度:O(m × n)
  • 空间复杂度:O(m × n)

 63. 不同路径 II

https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.html

视频讲解:动态规划,这次遇到障碍了| LeetCode:63. 不同路径 II_哔哩哔哩_bilibili

解题思路

1.dp[i][j]表示从00走到ij有多少种方式

2. ij可以由i-1,j往右走一步,或者i,j-1往想下走一步,但这里可能有障碍物,因此只需要加一个条件即可

if(obs[i][j]==0) 再去递推

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

3.初始化,第0行和第0列要初始化,因为其他的都是由左和上方向相加而来的,同时有障碍物的话,从0到障碍物的位置赋值为1即可 , 遇到障碍物直接终止,起始位置和终止位置有障碍直接返回0

4.从上往下,从左往右遍历,因为初始值在上面和左面

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m = obstacleGrid.size(); //行int n = obstacleGrid[0].size(); //列if(obstacleGrid[0][0]==1 || obstacleGrid[m-1][n-1]==1) return 0;  //起始和终止有障碍,直接返回vector<vector<int>> dp(m,vector<int>(n,0));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(n × m),n、m 分别为obstacleGrid 长度和宽度
  • 空间复杂度:O(n × m)

收获

今天比较轻松,继续加油 

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

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

相关文章

精通Java:高级面试问题精粹与解答(一)

Java 高级面试问题及答案 1. 如何在Java中实现多线程&#xff1f; 答案&#xff1a; 在Java中实现多线程有几种方式&#xff1a; 继承Thread类&#xff1a;创建一个类继承自Thread类&#xff0c;并重写其run()方法。实现Runnable接口&#xff1a;创建一个类实现Runnable接口…

修改ui 组件 表格划过效果

问题描述 Ant Design Vue 中table 表格 取消划过效果&#xff0c;正常使用类找到效果并修改后 会出现闪白的情况。 .ant-table-cell-row-hover:hover:not(.ant-table-expanded-row) > td{background-color: green !important; }原因分析&#xff1a; 代码运行自上而下并因…

1791.找出星形图的中心节点

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

电脑中msvcp100.dll丢失了怎么办?总结7种靠谱的解决方法

msvcp100.dll 文件是 Microsoft Visual C 2010 Redistributable 的一部分&#xff0c;这是一个重要的动态链接库&#xff08;DLL&#xff09;文件&#xff0c;用于存储许多程序共同使用的代码和资源。它是执行 C 编写的应用程序所必需的&#xff0c;尤其是那些使用 Visual C 20…

全局配置Maven

如果开着项目&#xff0c;就file->close project 如果创建有问题可以转到这篇rIDEA2024创建maven项目-CSDN博客https://blog.csdn.net/weixin_45588505/article/details/139271562?spm1001.2014.3001.5502

Layui 项目打开左侧菜单空白解决方案

home/index.html 页面中 替换 navigation 为 menu

海外仓ERP系统:赋能海外仓,实现标准化管理

随着业务规模的不断发展和业务类型的复杂度逐渐提升&#xff0c;传统的海外仓管理模式已经很难适应现在的情况了。对海外仓企业来说&#xff0c;一套合适的海外仓管理erp系统可以起到很大的辅助作用。 不过很多小型海外仓企业会纠结于是同时选择企业erp系统和海外仓管理系统&a…

图论(五)-最短路

一、Bellman-Ford算法 算法思想&#xff1a;通过 n 次循环&#xff0c;每次循环都遍历每条边&#xff08;共 m 条边&#xff09;&#xff0c;进而更新节点的距离&#xff0c;每次循环至少可以确定一个点的最短路&#xff0c;循环 n 次&#xff0c;求出 n 个点的最短路 时间复杂…

vue2中如何使用事件总线完成任意组件间的通信

main.js Vue.prototype.$bus new Vue()demo01.vue: 发起事件 this.$bus.$emit("menuFold", menuFold)demo02.vue接收事件 ** 注意&#xff1a;接收事件需要写到created或者mounted里面 ** mounted() {this.$bus.$on("menuFold", (fold) > {console.…

《QT实用小工具·六十七》QTabWidget实现的炫酷标签工具栏

1、概述 源码放在文章末尾 该项目基于QTabWidget和QTabBar实现了灵活的标签工具栏&#xff0c;主要包含如下功能&#xff1a; 1、标签栏可以收起&#xff0c;可以展开 2、可以在标签栏中添加新的标签界面 3、可以从标签工具栏中把界面拖出来&#xff0c;也可以拖回去 4、关闭拖…

源码解析之p-limit(限制异步任务并发数量)

p-limit是一个用于限制异步任务并发数量的javascript库&#xff0c;可以有效地管理资源并避免系统负载过高 简单使用如下&#xff1a; import pLimit from "p-limit"// 限制并发数量为2 const limit pLimit(2)const delay (ms) > {return new Promise(resolve…

【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组

【CSharp】ushort[]的IntPtr快速转换为ushort[]无符号短整型数组 1.背景2.代码1.背景 参考博客: 【CSharp】无符号短整型数组ushort[]转化为IntPtr https://blog.csdn.net/jn10010537/article/details/139278321?spm=1001.2014.3001.5501探测器/相机SDK获得是InPtr指针,它…

python自动化-自动化网络配置工具v2(可巡检,可批量配置)

在日常工作中遇到需要配置相同配置的场景&#xff0c;网络工程师一个个去登陆配置会让工作效率显得没那么高效。 但是随着科技发展&#xff0c;人们不断的学习&#xff0c;我们似乎可以使用一些软件或者脚本来帮助我们实现巡检任务或者配置任务。 今天我想给大家分享一款我自己…

阿里面试:NIO为什么会导致CPU100%?

在 Java 中总共有三种 IO 类型&#xff1a;BIO&#xff08;Blocking I/O&#xff0c;阻塞I/O&#xff09;、NIO&#xff08;Non-blocking I/O&#xff0c;非阻塞I/O&#xff09;和 AIO&#xff08;Asynchronous I/O&#xff0c;异步I/O&#xff09;&#xff0c;它们的区别如下&…

LeetCode刷题之HOT100之多数元素

2024/5/21 起床走到阳台&#xff0c;外面绵柔细雨&#xff0c;手探出去&#xff0c;似乎感受不到。刚到实验室&#xff0c;窗外声音放大&#xff0c;雨大了。昨天的两题任务中断了&#xff0c;由于下雨加晚上有课。这样似乎也好&#xff0c;不让我有一种被强迫的感觉&#xff0…

React-入门

React由Meta公司研发&#xff0c;是一个用于构建Web和原生交互界面的库 既可以写基于浏览器的应用&#xff0c;还可以写苹果和安卓的原生应用 优势 开发环境搭建 create-react-app是一个快速创建React开发环境的工具&#xff0c;底层是由Webpack构建&#xff0c;封装了配置细…

江协科技STM32学习-0 购买套件

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记&#xff0c;在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用&#xff1a; STM32入门教程-2023版 细致讲…

Servlet跳转404(解决)

1.解决无法跳转的404问题&#xff08;最根本&#xff0c;最重要&#xff09; 查看Project Structure&#xff0c;检查你的JDK版本不要选错版本&#xff1b; 2.页面跳转&#xff0c;url栏输入的是web.xml中的url-pattern内容&#xff0c;请仔细检查 3.关于配置信息Applicatio…

鸿蒙HarmonyOS开发:tabs结合tabContent实现底部tabBar导航栏页面布局

文章目录 一、组件介绍1、Tabs参数属性事件TabsController 2、子组件属性说明 二、基础示例1、基础顶部导航2、效果3、可以滚动导航栏2、效果 三、扩展示例自定义导航栏1、代码2、效果 一、组件介绍 Tabs组件的页面组成包含两个部分&#xff0c;分别是TabContent和TabBar。Tab…

【Pandas】数据处理方法

1.数据拆分 pandas.Series.str.extract() Series.str.extract(pat, flags0, expandTrue)[source]extract(提取) 参数 pat: 带分组的正则表达式。 flag: re模块中的标志&#xff0c;例如re.IGNORECASE&#xff0c;修改正则表达式匹配的大小写、空格等 expand: 默认为True&…