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

62.不同路径

文档讲解:代码随想录

题目链接:. - 力扣(LeetCode)

 

记录每个格子的状态 二维矩阵-->二维dp数组

dp数组

题目是要求到达最后一个格子有多少种路径

所以dp[i,j]: 到达第(i,j)个格子有多少种路径

递推公式

到达一个格子只能是由上一个格子向右走或者向下走,所以目标格子的前一个格子有如下几种情况:

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

dp数组如何初始化

dp[0,i]=1,dp[0,j]=1

遍历顺序

初始值在左上面

从上向下,从左向右

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        dp = [[0] * n for _ in range(m)]
        #初始化第一行
        for j in range(0,n):
            dp[0][j] = 1
        #初始化第一列
        for i in range(0,m):
            dp[i][0] = 1
        #递推,从上往下,从左往右
        for i in range(1,m):
            for j in range(1,n):
                dp[i][j] = dp[i][j-1] + dp[i-1][j]
        return dp[m-1][n-1]

63. 不同路径 II

文档讲解:代码随想录

题目链接:. - 力扣(LeetCode)

 遇上一题类似

递推公式加了一个前提条件,[i][j]需要没有障碍

最大的差异在于初始化:遇到一个障碍之后,第一列和第一行后面的值就都是0了

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        n = len(obstacleGrid[0])
        m = len(obstacleGrid)
        print(m,n)
        dp = [[0] * n for _ in range(m)]
        #初始化第一行
        for j in range(0,n):
            if obstacleGrid[0][j]!=1:
                dp[0][j] = 1
            else:
                break
        #初始化第一列
        for i in range(0,m):
            if obstacleGrid[i][0]!=1:
                dp[i][0] = 1
            else:
                break
        #递推,从上往下,从左往右
        for i in range(1,m):
            for j in range(1,n):
                if obstacleGrid[i][j]!=1:
                    dp[i][j] = dp[i][j-1] + dp[i-1][j]
        return dp[m-1][n-1]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPS文件没有保存怎么恢复?5个解决方案轻松恢复!

“我在WPS上编辑了一个文件,但是还没来得及将它保存,我不小心就退出软件了,现在不知道有什么方法可以恢复WPS文件呢?大家可以帮帮我吗” WPS作为一款功能强大且用户友好的软件,给我们的工作带来了很多的便利。但我们在…

记录一次内存取证

1.情景复现 我姐姐的电脑坏了。我们非常幸运地恢复了这个内存转储。你的工作是从系统中获取她所有的重要文件。根据我们的记忆,我们突然看到一个黑色的窗口弹出,上面有一些正在执行的东西。崩溃发生时,她正试图画一些东西。这就是我们从崩溃…

# WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办?

WIN10/WIN11 找不到【应用商店 Microsoft.WindowsStore】怎么办? 解决方法: 1、右键【开始】菜单,点击【Windows PowerShell (管理员)】,输入: Get-AppxPackage -allusers | Select Name, PackageFullName 2、查询…

期望薪资30k字节java2面,A给B转账的同时B给A转账怎么并发量最高

一面 1、自我介绍 2、详细介绍一下自己的做的项目?根据项目提了一些问题 3、hashmap原理 4、B树原理? 5、final禁止重排序原理? 6、设计一个榨汁机类,面向对象怎么设计? 7、get、post区别,使用场景&…

AI大模型探索之路-实战篇9:探究Agent智能数据分析平台的架构与功能

系列篇章💥 AI大模型探索之路-实战篇4:深入DB-GPT数据应用开发框架调研 AI大模型探索之路-实战篇5:探索Open Interpreter开放代码解释器调研 AI大模型探索之路-实战篇6:掌握Function Calling的详细流程 AI大模型探索之路-实战篇7…

kettle学习之子映射组件

映射组件就跟java中的函数方法一样,类似一个子流程。 练习开始 根据数据库表中的id查询出想要的字段,并把字段存到excel表中 一、表输入 二、子映射 映射输入规范,类似java方法中的形参 name vsxcd是方法返回的参数 三、excel输出 运行结果…

前端基于word模板导出word文档

项目环境 vue2 js vue-cli等 依赖包都可以在npm官网找到对应文档 npm官网(英文) 1、依赖 安装依赖 docxtemplater npm i docxtemplaterfile-saver npm i file-saverjszip-utils npm i jszip-utilsjszip npm i jszip在对应页面或模块中引入依赖 import Docxtemplater …

关于(苍穹外卖)Cache问题的一点困惑与思路

因为本人,em---昨天看的,今天早上就有点迷惑了,在这里记录一下,并捋一下思路, 首先要明确的一点就是,我们是在uesr端进行缓存的,并且,菜品缓存是中的key是 String key "dish…

ora-00392 ora-00312错误处理

检查当前日志组状态 对日志组进行clear操作 重新开库无报错

CSS 一些常见的大坝设备仪器标识绘制

文章目录 需求分析1. 坝基测压管2. 坝体测压管3. 竖向位移兼水平位移测点4. 竖向位移测点5. 三角量水堰6. 水平位移观测工作基点7. 竖向位移观测水准基点8. 其他 需求 绘制一些常见的设备仪器标识符 分析 1. 坝基测压管 <!DOCTYPE html> <html lang"en"…

中国1KM分辨率年平均气温数据集

该数据为中国逐年平均温度数据&#xff0c;空间分辨率为0.0083333&#xff08;约1km&#xff09;&#xff0c;时间为1901年-2022年。该数据集是根据全国2472个气象观测点数据进行插值获取&#xff0c;验证结果可信。本数据集包含的地理空间范围是全国主要陆地&#xff08;包含港…

【ARM+Codesys案例】基于全志T3+Codesys的快递物流单件分离器控制系统

物流涉及国计民生&#xff0c;是在社会发展中不可或缺的一环。随着社会的改革开放&#xff0c;工业发展迅猛&#xff0c;此时也伴随着物流业的快速发展。电商、快递等行业业务量爆发以及人工成本的不断上涨&#xff0c;自动化输送分拣设备市场呈现井喷式发展。物流行业从传统方…

探索智能零售的未来商机与运营策略

探索智能零售的未来商机与运营策略 在智能零售的广阔图景中&#xff0c;无人售货机加盟赫然矗立为一股不可小觑的力量&#xff0c;预示着零售业态未来的转型与机遇。其核心优势多维展开&#xff0c;具体阐述如下&#xff1a; 1. **全天候服务**&#xff1a;无人售货机的运行跨…

ACS美国化学学会文献去哪里查找

今天有位同学求助一篇ACS美国化学学会文献&#xff0c;下面就以这篇文献实例讲解一下如何自己解决文献下载的过程。篇名&#xff1a;Biomimetic Superstructured Interphase for Aqueous Zinc-Ion Batteries 知道文献的来源数据库&#xff0c;直接去文献来源数据库下载文献又准…

两台电脑怎么互传文件?这些方法你值得一试

在日常生活和工作中&#xff0c;我们经常需要在不同电脑之间传输文件&#xff0c;这可能是文档、照片、音乐或其他类型的文件。两台电脑怎么互传文件是非常有用的技能&#xff0c;可以提高工作效率并简化文件共享过程。本文将介绍三种常见的方法&#xff0c;帮助您了解如何在两…

【Pandas】深入解析`pd.to_sql()`函数

【Pandas】深入解析pd.to_sql()函数 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1…

选择排序。

选择排序是一种简单直观的排序算法&#xff0c;其基本思路是在未排序的序列中找到最小&#xff08;或最大&#xff09;元素&#xff0c;然后将其存放到序列的起始位置。 void select_sort(int arr[], int sz) {int i 0;for (i 0; i < sz; i) {int min i;int j 0;for (j…

SSE(Server Sent Event) 踩坑留念

整条链路是 客户端A --> 服务端 A —> 服务端 B 我负责服务端 A 此时要注意 Client 中的 processes 的写法 Post(value “/v2/xx”, processes MediaType.TEXT_EVENT_STREAM) 这样写是一直报错的 改成下面的写法才可以 Post(value “/v2/xx”, processes MediaT…

打破传统界限,数字沙盘演绎乡村魅力!

自古以来&#xff0c;沙盘模型便以其独特的方式汇聚并展现着综合信息。然而&#xff0c;随着多媒体技术的突飞猛进&#xff0c;这一传统展示形式也迎来了深刻的变革&#xff0c;三维数字沙盘应运而生&#xff0c;它不仅融合了先进的科技元素&#xff0c;更以其独特的呈现方式&a…

Rabbit MQ学习之《基础概念》

Message Queue 1 什么是MQ MQ(message queue)&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是message而已&#xff0c;同时是一种跨进程的通信机制&#xff0c;用于上下游传递消息。 在互联网架构中&#xff0c;MQ 是一种非常常见的…