代码随想录算法训练营第三十九天|LeetCode62 不同路径、LeetCode63 不同路径II

62.不同路径

思路:确定dp数组及其下标含义,dp[i][j]代表到达i,j坐标的路径数。确定递推公式dp[i][j] = dp[i-1][j]+dp[i][j-1]。因为只能向右向下移动。初始化dp数组,dp数组的第一行第一列都为1,因为不能向上向左。遍历顺序,从左到右从上到下,因为移动方向。打印dp数组,用于debug。

class Solution {
public:int uniquePaths(int m, int n) {//确定dp数组以及下标的含义 dp[i][j]表示到达i,j坐标时可以走的路径数//确定递推公式 dp[i][j] = dp[i-1][j]+dp[i][j-1];//初始化dp数组vector<vector<int>> dp(m,vector<int>(n));for(int i = 1;i<n;i++){dp[0][i] = 1;}for(int i = 0;i<m;i++){dp[i][0] = 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,因为无法到达。递推时,如果坐标处有障碍物直接continue,让它保持初始化的0。如果起点和终点具有障碍物直接返回0,算是剪枝。其他与上一题相同。

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//确定dp数组及其下标含义 dp[i][j]代表到达第i,j坐标的路径数//确定递推公式 dp[i][j] = dp[i-1][j]+dp[i][j-1];//初始化dp数组 第一行第一列为1,如果有障碍物 障碍物后为0//循环顺序,从左往右 从上往下//打印dp数组,用于debugint m = obstacleGrid.size();int n = obstacleGrid[0].size();vector<vector<int>> dp(m,vector<int>(n,0));if(obstacleGrid[0][0]==1||obstacleGrid[m-1][n-1]==1){return 0;}for(int i = 0;i<m&&obstacleGrid[i][0]!=1;i++){dp[i][0] = 1;}for(int j =0;j<n&&obstacleGrid[0][j]!=1;j++){dp[0][j] = 1;}for(int i =1;i<m;i++){for(int j =1;j<n;j++){if(obstacleGrid[i][j]==1){continue;}dp[i][j] = dp[i-1][j]+dp[i][j-1];}}return dp[m-1][n-1];}
};

收获:

由于移动方向只能为右下,因此dp数组第一行和第一列的初始化可以确定。遍历的顺序可以确定。

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

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

相关文章

3D-Genome | Hi-C互作矩阵归一化指南

Hi-C 是一种基于测序的方法&#xff0c;用于分析全基因组染色质互作。它已广泛应用于研究各种生物学问题&#xff0c;如基因调控、染色质结构、基因组组装等。Hi-C 实验涉及一系列生物化学反应&#xff0c;可能会在输出中引入噪声。随后的数据分析也会产生影响最终输出噪声&…

Python Tkinter GUI 基本概念

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;如果停止&#xff0c;就是低谷&#xf…

PostgreSQL教程(二十五):服务器管理(七)之管理数据库

每个正在运行的PostgreSQL服务器实例都管理着一个或多个数据库。因此&#xff0c;在组织SQL对象&#xff08;“数据库对象”&#xff09;的层次中&#xff0c;数据库位于最顶层。本章描述数据库的属性&#xff0c;以及如何创建、管理、删除它们。 一、概述 一个数据库是一些S…

计算机网络概论01

计算机系统基础知识 基本组成 计算机系统由硬件和软件组成。 硬件由五大部分&#xff0c;他们分别是&#xff1a; 运算器 执行算数运算和逻辑运算控制器 控制cpu的工作&#xff0c;决定了计算机运行过程的自动化。包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑…

node项目通过.env文件配置环境变量

https://www.npmjs.com/package/dotenv require(dotenv).config()console.log(process.env, process.env.apiKeyOnServer)我开发的chatgpt项目&#xff1a; https://chat.xutongbao.top

Linux驱动适配内核时,对于不同版本内核中有变化函数的处理

一、情景 Linux驱动适配不同内核时&#xff0c;由于内核版本的不同&#xff0c;有些函数可能没有&#xff0c;或者函数直接变化了&#xff0c;高版本可能增加了一些参数。 二、常规处理方案&#xff0c;根据内核版本判断 一般情况我们处理方式是在使用这些函数时&#xff0c…

Imagination:RISC-V CPU的重要力量

根据SHD集团最近发布的报告显示&#xff0c;RISC-V正全速发展中。通过分析从2021年到2030年这十年间RISC-V核在不同应用和功能领域的潜在市场&#xff0c;作者Rich Wawrzyniak得出结论称&#xff0c;到2030年&#xff0c;22.3%的SoC将包含RISC-V CPU&#xff0c;RISC-V的收入预…

Docker网络+原理+link+自定义网络

目录 一、理解Docker网络 1.1 运行tomcat容器 1.2 查看容器内部网络地址 1.3 测试连通性 二、原理 2.1 查看网卡信息 2.2 再启动一个容器测试网卡 2.3 测试tomcat01 和tomcat02是否可以ping通 2.4 只要删除容器&#xff0c;对应网桥一对就没了 2.5 结论 三、…

蓝牙耳机潜水时可以用吗?适合潜水的四大游泳耳机分享

在科技日新月异的今天&#xff0c;我们越来越依赖各种电子设备来丰富我们的生活。无论是运动、工作还是休闲娱乐&#xff0c;耳机都成为了我们不可或缺的伙伴之一。然而&#xff0c;当谈到水上活动时&#xff0c;许多人可能会对蓝牙耳机是否能在水下使用感到困惑。虽然市面上有…

前端实现图片绕指定圆心转动,且图片自身不转动的功能

前端实现图片绕指定圆心转动&#xff0c;且图片自身不转动的功能、 div>img div: 利用css的animation 去做循环 用transform: rotate 去做旋转 然后利用transform-origin: bottom left;指定旋转圆心位置 img 在div旋转的同时 做反向旋转 <template><div class&qu…

SpringBoot第三课-日志

1.日志分类 2.默认使用 默认使用logback与slf4j作为底层默认日志 但是由于日志是系统启动就需要使用&#xff0c;所以与其他的自动配置不同&#xff0c;自动配置是后来使用的&#xff0c;而日志是使用监听器配置好的。 ApplicationListener 3.日志级别 1.级别介绍 SpringB…

刷题第11天

代码随想录刷题第11天 | 二叉树前中后序遍历 前序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x…

学AI,3种人,3种学法

在刘润的文章《都说要学AI&#xff0c;但3种人&#xff0c;3种学法》中&#xff0c;作者针对当前AI热潮下不同人群的学习需求&#xff0c;提出了三种不同的学习策略&#xff0c;觉得很有启发性&#xff0c;重点总结如下&#xff0c;原始文章较长&#xff0c;链接在文章结尾。 随…

使用采购管理软件构建更高效的采购模式

采购流程是企业整个采购部门的关键要素。无论企业规模大小&#xff0c;构建采购流程的模式都将直接影响企业控制成本、管理风险和保持流程弹性的能力。 下面我们将解释采购模式的类型、优缺点&#xff0c;以及如何确定哪种模式最适合你的采购部门。 集中采购的优缺点 在集中采…

Windows的自动更新和自带的杀毒软件怎么弄掉!

关闭Windows系统更新 Windows系统更新是为了保持设备的平稳和安全运行,保持操作系统安全、稳定及获取新功能修复已知问题并修补安全漏洞的重要过程。如果您想要临时或永久关闭Windows系统的自动更新,可以采用以下几种方式。不过,请务必意识到,禁用系统更新可能会导致您的系…

什么是VRRP?

目录 什么是VRRP&#xff1f; 一、VRRP的定义 VRRP的三种状态 VRRP决定哪个路由器是Master。 二、VRRP的作用 三、VRRP名词解释 1、Virtual Router 2、VRRP Router 四、华为VRRP实验配置基础 检查基于IPv4的VRRP基本功能配置结果 随着网络的快速普及和相关应用的日益深…

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(三)

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;前导&#xff09; Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;一&#xff09; Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验&#xff08;二&#xff09; 八、板级验证 1.验证内容 通过电脑…

5. Java内存模型JMM

文章目录 计算机硬件存储体系基于计算机存储结构的 JMM Java 内存模型 JavaMemoryModelJMM规范下的三大特性原子性可见性有序性 多线程对变量的读写过程读取过程 多线程先行发生原则 happens-beforex,y 的 case 说明happens-before 原则说明happens-before 大原则happens-befor…

如何转行成为产品经理?

转行NPDP也是很合适的一条发展路径&#xff0c;之后从事新产品开发相关工作~ 一、什么是NPDP&#xff1f; NPDP 是产品经理国际资格认证&#xff0c;美国产品开发与管理协会&#xff08;PDMA&#xff09;发起的&#xff0c;是目前国际公认的唯一的新产品开发专业认证&#xff…

fasta文件与fastq文件相互转化Python脚本

fa文件与fq文件互相转换 今天分享的内容是fasta文件与fastq文件的基本知识&#xff0c;以及通过Python实现两者互相转换的方法。 测序数据公司给的格式通常是fq.gz&#xff0c;也就是fastq文件&#xff0c;计算机的角度来说&#xff0c;生物的序列属于一种字符串&#xff0c;就…