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

62.不同路径

  1. dp数组以及下标的含义:dp[i][j]代表到达第i行第j列有多少条不同的路径
  2. 递推公式:dp[i][j] = dp[i][j-1] + dp[i-1][j]
  3. dp数组初始化:dp[0][:] = 1 dp[:][0] = 1
  4. 遍历顺序:从前往后遍历
  5. 举例推导dp数组:

按照这种方法自己做出来了,有点进步

class Solution:def uniquePaths(self, m: int, n: int) -> int:dp = [[0] * n for _ in range(m)]for j in range(n):dp[0][j] = 1for i in range(m):dp[i][0] = 1for i in range(1, m):for j in range(1, n):dp[i][j] = dp[i][j - 1] + dp[i - 1][j]return dp[-1][-1]

63. 不同路径 II 

遇到障碍的时候dp赋值为0,要注意在初始化的时候,只要遇到障碍,后面的数值都置为0,因为不可能到达了

  1. dp数组以及下标的含义:dp[i][j]代表到达第i行第j列有多少条不同的路径
  2. 递推公式:dp[i][j] = dp[i][j-1] + dp[i-1][j]
  3. dp数组初始化:dp[0][:] = 1 dp[:][0] = 1
  4. 遍历顺序:从前往后遍历
  5. 举例推导dp数组:
class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:m = len(obstacleGrid)n = len(obstacleGrid[0])dp = [[0] * n for _ in range(m)]for i in range(m):if obstacleGrid[i][0] != 0:breakelse:dp[i][0] = 1for j in range(n):if obstacleGrid[0][j] != 0:breakelse:dp[0][j] = 1for i in range(1, m):for j in range(1, n):if obstacleGrid[i][j] == 1:dp[i][j] = 0else:dp[i][j] = dp[i][j-1] + dp[i-1][j]return dp[-1][-1]

注意:

  • 可以直接在obstacleGrid上更改,节约空间
  • 如果起点或终点有障碍物,直接返回0 即if obstacleGrid[m - 1][n - 1] == 1 or obstacleGrid[0][0] == 1: return 0

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

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

相关文章

springboot+vue项目基础开发(16)主页面布局

主页面代码,在view下面创建mainLayout.vue <script setup> import{Management,Promotion,UserFilled,User,Crop,EditPen,SwitchButton,CaretBottom } from @element-plus/icons-vue

【洛谷 P8706】[蓝桥杯 2020 省 AB1] 解码 题解(模拟+输入输出)

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母&#xff0c;可能包含大写和小写。 在这串字母中&#xff0c;有很多连续的是重复的。小明想了一个办法将这串字母表达得更短&#xff1a;将连续的几个相同字母写成字母 出现次数的形式。 例如&#xff0c;连续…

《Docker极简教程》--Docker网络--Docker网络的配置和使用

一、Docker网络配置 1.1 单主机网络配置 创建自定义桥接网络 在Docker中&#xff0c;创建自定义桥接网络是一种常见的网络配置方式&#xff0c;特别适用于单主机环境&#xff0c;可以帮助容器相互通信并与外部网络进行通信。下面我将介绍如何在单主机上创建自定义桥接网络&…

C++ //练习 8.2 测试函数,调用参数为cin。

C Primer&#xff08;第5版&#xff09; 练习 8.2 练习 8.2 测试函数&#xff0c;调用参数为cin。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块见练习8.1 /**************************************************************…

代码随想录|day 23

Day 23 一、回溯 二、代码 216. 组合总和 III - 力扣&#xff08;LeetCode&#xff09; class Solution { private:vector<int>path;vector<vector<int>>result;void backtracing(int sum,int k,int n,int startindex){//中止条件if(path.size()k){if(sum…

three.js第一个3D案例

在正式学习Three.js之前&#xff0c;先做一些必要的准备工作&#xff0c;具体说就是下载threejs官方文件包&#xff0c;threejs官方文件包提供了很多有用的学习资源。 threejs官方文件包所有版本&#xff1a;https://github.com/mrdoob/three.js/releases threejs文件资源目录…

桥接模式:解耦抽象与实现,实现灵活多变的扩展结构

文章目录 一、引言二、应用场景与技术背景三、模式定义与实现四、实例详解五、优缺点分析总结&#xff1a; 一、引言 ​ 桥接模式是一种结构型设计模式&#xff0c;它将抽象部分与它的实现部分分离&#xff0c;使它们可以独立变化。这种模式通过创建一个抽象层和实现层的结构&…

Android RecyclerView 如何展示自定义列表 Kotlin

Android RecyclerView 如何展示自定义列表 Kotlin 一、前提 有这么一个对象 class DeviceDemo (val name: String, val type: String, val address: String)要展示一个包含这个对象的列表 bluetoothDevices.add(DeviceDemo("bb 9800", "LE", "32:…

matlab实现汉明窗低通滤波器,汉宁窗带通滤波器,布莱克曼窗高通滤波器,矩形窗的带阻滤波器。

1 汉明窗低通滤波器 : 在Matlab中使用汉明窗设计低通滤波器可以通过fir1函数实现。汉明窗通常用于设计滤波器,可以提供更突出的频率特性。 下面是一个示例代码,演示如何在Matlab中使用汉明窗设计低通滤波器: % 定义滤波器参数 fs = 1000; % 采样频率 cutOffFreq = 100; …

如何解决无法npm下载electron依赖的

使用electron&#xff0c;安照官方例子&#xff0c;结果是失败的。原因是下载官网的二进制包失败&#xff0c;结果不能执行。 也用了npm的镜像&#xff1a;registry "https://registry.npmmirror.com/"&#xff0c;也不行。 后来网上折腾一段时间&#xff0c;看到…

Sublime Text4配置C#运行环境

这里写自定义目录标题 前言部署.NET环境Sublime Text4配置C#编译环境1. 下载插件 运行测试 前言 今天把家里的9年前的远古神机搬了出来&#xff0c;重装了个win7的精简版&#xff0c;本打算装个VScode测试一下是否能写C#代码&#xff0c;结果是可以的&#xff0c;但&#xff0…

Qt 设置隐式加载dll路径

在c++中DLL的加载方式有两种,显式加载和隐式加载。 隐式加载 在程序从开始运行时,就会按照系统中一定的搜索路径,寻找动态库,找到就自动加载它,才能成功运行程序,这些步骤,是系统自动完成的。 显示加载 我们对动态库的调用,是在代码中直接使用LoadLibrary,或其他加载函…

基于springboot+vue的大型商场应急预案管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Flask基础学习3

参考视频&#xff1a;41-【实战】答案列表的渲染_哔哩哔哩_bilibili flask 实现发送短信功能 pip install flask-mail # 安装依赖 我这里用登录的网易邮箱获取的授权码&#xff08;登录QQ邮箱的授权码总是断开收不到邮件&#xff09;&#xff0c; # config # config mail MAI…

【智能车入门:pcb版】(蓝牙遥控、超声波避障、红外循迹)

实现最简单的蓝牙遥控、超声波避障、红外循迹&#xff09; 总览项目获取 本篇是对 上一篇博客的改进&#xff0c;上一篇博客使用面包板&#xff0c;看起来很乱&#xff0c;春节结束之后嘉立创免费打板恢复&#xff0c;板子到了之后进行焊接测试&#xff0c;相较于使用面包板&a…

神经网络系列---激活函数

文章目录 激活函数Sigmoid 激活函数Tanh激活函数ReLU激活函数Leaky ReLU激活函数Parametric ReLU激活函数 &#xff08;自适应Leaky ReLU激活函数&#xff09;ELU激活函数SeLU激活函数Softmax 激活函数Swish 激活函数Maxout激活函数Softplus激活函数 激活函数 一般来说&#xf…

Python入门必学:单引号、双引号与三引号的差异与应用

Python入门必学&#xff1a;单引号、双引号与三引号的差异与应用 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得…

【AI学习指南】五、深度学习框架-PaddlePaddle实现线性回归/结果绘制

目录 简介 使用 安装 实现线性回归 导入库 生成随机数据

Java:获取PDF文件的总页数

引入依赖 <!--pdf--> <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version> </dependency>代码工具类 package com.example.util;import org.apache.pdfbox.p…

UE蓝图 函数调用(CallFunction)节点和源码

系列文章目录 UE蓝图 Get节点和源码 UE蓝图 Set节点和源码 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 UE蓝图 入口(FunctionEntry)节点和源码 UE蓝图 返回结果(FunctionResult)节点和源码 UE蓝图 函数调用(CallFunction)节点和源码 文章目录 系列文章目录一、Call…