代码随想录Day33 LeetCode T62不同路径 LeetCode T63 不同路径II
前言
动规五部曲
1.确定dp数组含义
2.确定递推公式
3.初始化数组
4.确定遍历方式
5.打印dp数组查看分析问题
LeetCode T62 不同路径
题目链接:62. 不同路径 - 力扣(LeetCode)


题目思路:
注:n行m列而不是m行n列
1.确定dp数组含义
代表到达此下标有多少条路径
2.确定递推公式
因为只能向右或者向下走,所以到达i,j这个点的路径只有从左边和从上面到达,所以到达这个的途径数就是左边的数和上面的数之和.
dp[i][j] = dp[i-1][j] + dp[i][j-1];3.初始化数组
初始化的时候应该将左边边界和上面边界都初始化为1,因为只有一条路径能到达
for(int i = 0;i<m;i++){dp[i][0] = 1;}for(int i = 0;i<n;i++){dp[0][i] = 1;}4.确定遍历方式
此题目跟遍历顺序无关,顺序遍历即可
5.打印dp数组查看分析问题
遇见问题可以打印dp数组并推导尝试是否有问题
最后直接返回右下角的值即可
题目代码:
class Solution {public int uniquePaths(int m, int n) {int[][] dp = new int[m][n];for(int i = 0;i<m;i++){dp[i][0] = 1;}for(int i = 0;i<n;i++){dp[0][i] = 1;}
//记得从下标1,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];}
}
LeetCode T63 不同路径II
题目链接:63. 不同路径 II - 力扣(LeetCode)
题目思路:
1.确定dp数组含义
此时的dp数组也是代表和上一题一样的含义,表示有多少条路径能到达这个坐标
2.确定递推公式
注:这里如果遇到障碍,也就是1的情况,我们就让dp这个点取得0,不然就是和上文一样的递推公式
dp[i][j] = (obstacleGrid[i][j] == 0)?dp[i-1][j] + dp[i][j-1]:0;3.初始化数组
这里初始化在边界遇到障碍的时候就是代表后面的下标都是到达不了的地方,所以就不进行赋值
注意:如果起点或者终点为障碍,就直接返回0
4.确定遍历方式
顺序遍历即可
5.打印dp数组查看分析问题
题目代码:
class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;int[][] dp = new int[m][n];//起点和终点为障碍if(obstacleGrid[0][0] == 1 || obstacleGrid[m-1][n-1] == 1){return 0;}for(int i = 0;i<m && obstacleGrid[i][0] == 0;i++){dp[i][0] = 1;}for(int i = 0;i<n && obstacleGrid[0][i] == 0;i++){dp[0][i] = 1;}for(int i = 1;i<m;i++){for(int j = 1;j<n;j++){dp[i][j] = (obstacleGrid[i][j] == 0)?dp[i-1][j] + dp[i][j-1]:0;}}return dp[m-1][n-1];}
}
相关文章:
代码随想录Day33 LeetCode T62不同路径 LeetCode T63 不同路径II
前言 动规五部曲 1.确定dp数组含义 2.确定递推公式 3.初始化数组 4.确定遍历方式 5.打印dp数组查看分析问题 LeetCode T62 不同路径 题目链接:62. 不同路径 - 力扣(LeetCode) 题目思路: 注:n行m列而不是m行n列 1.确定dp数组含义 代表到达此下标有多少条…...
【计算机网络】分层模型和应用协议
网络分层模型和应用协议 1. 分层模型 1.1 五层网络模型 网络要解决的问题是:两个程序之间如何交换数据。 四层?五层?七层? 2. 应用层协议 2.1 URL URL(uniform resource locator,统一资源定位符&#…...
Python框架之Flask入门和视图
一、Flask入门和视图 需要安装Pycharm专业版 1. Flask简介 Python后端的2个主流框架 Flask 轻量级框架Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档:https://flask.palletsprojects.com/ 中文文档:https://dormousehole.readthe…...
streamWriter.WriteLine
streamWriter.WriteLine写入文件有回车行 using (System.IO.StreamWriter streamWriter new System.IO.StreamWriter("D:\123.txt", false, System.Text.Encoding.Default)) { streamWriter.Write(str.Replace("…...
一键添加色彩变幻效果,视频剪辑从未如此简单!
在视频制作过程中,给视频添加特效是必不可少的环节。而其中,色彩变幻效果作为一种常用的特效,能够为视频增添独特的氛围和视觉冲击力。然而,对于许多初学者来说,如何批量给视频添加色彩变幻效果特效功能却是一个难题。…...
Linux的简介和环境搭建
简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个…...
你看现在的程序员,是怎么解bug的
大家好,我是伍六七。 干程序员的都会碰到各种各样的 bug,有的 bug 我们看一眼、或者多看几眼就能看出来问题。 但是,也有很多问题,我们看不出来,这个时候,我们不妨把我们的代码扔给 GPT,看看它…...
CSS3背景样式
在CSS 2.1中,background属性的功能还无法满足设计的需求,为了方便设计师更灵活地设计需要的网页效果,CSS3在原有background基础上新增了一些功能属性,可以在同一个对象内叠加多个背景图像,可以改变背景图像的大小尺寸&…...
JAVA同城服务同城圈子真人躲猫猫系统的玩法流程
在现在科技的发展和互联网的普及,线上社交游戏在人们的生活中占据了越来越重要的地位。JAVA同城服务同城圈子真人躲猫猫系统就是一种结合了线上社交和线下实体位置服务的全新游戏模式。在这个游戏中,玩家们可以在同一城市中寻找隐藏的对手,体…...
C++继承——圆形和圆柱体
C继承 Circular圆形类 /*圆形类*/ class Circular { private:const static double PI;double R 0; public:Circular() default;Circular(double r);double GetArea(); /*圆面积*/double GetGirth(); /*圆周长*/ }; const double Circular::PI 3.14;Circular::Circula…...
致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]
文章目录 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用…...
Java规则引擎2.1.8版本新增功能说明
规则引擎更新功能 新增: 1.决策结束节点新增结果导出excel功能; 在决策流程的结束节点,可以将决策结果导出为Excel文件。这个功能为用户提供了更多的灵活性和便利性,使他们能够轻松地将决策结果数据进行进一步的分析和处理。 2.新增公有变…...
系列四十、请谈一下Spring中事务的传播行为
一、概述 事务的传播行为指的是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。事务的传播行为至少发生在两个事务方法的嵌套调用中才会出现。 二、传播行为分类...
kubectl详解
陈述式资源管理方法: 1.kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口 2.kubectl 是官方的CLI命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为 apiserver 能识别的信…...
QT通过url下载http地址下的文件(文件夹)
前言 之前只写过通过http协议通信,没有写过下载http地址中的文件或者文件夹,了解一下在QT下如何下载。 其实很简单,同使用协议通信相同的是,创建QNetworkAccessManager和QNetworkRequest,设置QNetworkRequest的url&a…...
测试实施运维必备知识点
Linux常用命令 ip addr 查看ip地址信息 ping 测试物理机是否联网 dhclient 让CentOS 7自动获取一个IP地址 vim 编辑纯文本文件 who 查看是否还有其他人在登录 find 在文件系统中搜索某文件 -name filename: 表示直接查找该文件名的文件 -type filetype:…...
RTSP/Onvif安防视频平台EasyNVR接入EasyNVS,出现Login error报错的解决方法
安防视频监控汇聚EasyNVR平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提…...
在Linux环境下远程访问MeterSphere开源测试平台
文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…...
ARPG----C++学习记录02 Section6位置,偏移,函数
设置actor位置 这一句代码就可以更改位置和旋转 给位置添加偏移offset 将debug的持久都设置为false,在tick中调用,球就会动。这是每帧移动,所以移动速度和帧率有关,需要更改 void Aitem::Tick(float DeltaTime) {Super::Tick(DeltaTime);Ad…...
怎么在现货黄金交易过程中高效设置止损?
投资市场中的风险具有客观及普遍性,现货黄金买卖也是如此,作为典型的国际性交易产品之中,在现货黄金买卖过程中人们要灵活应对行情变化,从中争取盈利空间。而设置止损就是防止风险扩大的一条有效措施,所以炒金者们应当…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...


