当前位置: 首页 > news >正文

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

 62.不同路径   

题目链接:62. 不同路径 - 力扣(LeetCode)

讲解链接:代码随想录

动态规划五步走

1 定义dp数组是到dp[i][j]时有dp[i][j]条路径

dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。

2 找递推公式 

从题目中知道 dp[i][j]只能从上方或者左方来 所以当前路径数 = 上方路径数 + 左方路径数

就是这一行 dp[i][j] = dp[i - 1][j] + dp[i][j - 1];

3 初始化dp 因为只能向下或者向左走 那其实在0行i列和0行j列都只能从起点开始并且到达当前位置的路径只能是1 所以 dp[0][j] =1; dp[i][0] =1;

4 确定遍历顺序 那就直接从前往后 有固定值 也不会有空值

5 推导一下 发现结果如图(代码随想录):

Java代码:

class Solution{public static 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;}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   

题目链接:

讲解链接:

 和上题思路一致 但是需要考虑障碍物位置 

障碍物在 起点 在 终点 在 遍历过程中的情况 grid[i][j] = 1代表当前位置有障碍物 

一旦有 则 在初始化dp[0][j] 和 dp[i][0](第一行和第一列的值)需要停下 而且在其障碍物以后的路径数为0

在递推公式里加了判断当前位置是否为障碍物

 dp[i][j] = (grid[i][j] == 0) ? dp[i - 1][j] + dp[i][j - 1] : 0;

Java代码:

class Solution{public int uniquePathsWithObstacles(int[][] grid){int m = grid.length;int n = grid[0].length;int[][] dp = new int[m][n];//如果在起点或终点出现障碍 直接返回0if(grid[m - 1][n - 1] == 1 || grid[0][0] == 1){return 0;}for(int i = 0; i < m && grid[i][0] == 0; i++){dp[i][0] = 1;}for(int j = 0; j < n && grid[0][j] == 0; j++){dp[0][j] = 1;}for(int i = 1; i < m; i++){for(int j = 1; j < n; j++){dp[i][j] = (grid[i][j] == 0) ? dp[i - 1][j] + dp[i][j - 1] : 0;}}return dp[m - 1][n - 1];}
}

 打卡打卡

相关文章:

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

62.不同路径 题目链接&#xff1a;62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 讲解链接&#xff1a;代码随想录 动态规划五步走 1 定义dp数组是到dp[i][j]时有dp[i][j]条路径 dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xf…...

V90伺服PN版组态配置<一>

1、添加PLC之后&#xff0c;继续博图中网络视图中添加新设备&#xff0c;添加伺服驱动器组态设备 2、SINAMICS V90 PN V1.0 3、修改驱动器的IP地址。 【注意】 在项目中提前做好项目规划&#xff0c;如PLC设备从192.168.0.1开始&#xff0c;顺序递增------个位数都是CPU设备…...

又一年。。。。。。

2024&#xff0c;浑浑噩噩的一年。 除了100以内的加减法&#xff08;数据&#xff0c;数据&#xff0c;还是数据。。。。。。&#xff09;&#xff0c;似乎没做些什么。 脸盲症越来越重的&#xff0c;怕是哪天连自己都不认得自己的了。 看到什么&#xff0c;听到什…...

xterm + vue3 + websocket 终端界面

xterm.js 下载插件 // xterm npm install --save xterm// xterm-addon-fit 使终端适应包含元素 npm install --save xterm-addon-fit// xterm-addon-attach 通过websocket附加到运行中的服务器进程 npm install --save xterm-addon-attach <template><div :…...

医疗数仓业务数据采集与同步

业务数据采集与同步 业务采集组件配置业务数据同步概述数据同步策略选择数据同步工具概述1.1.4 全量表数据同步DataX配置文件生成全量表数据同步脚本增量表数据同步 MySQL - Maxwell - Kafka - Flume - HDFSMaxwell配置增量表首日全量同步 业务采集组件配置 Maxwell将业务采集到…...

数字孪生智慧水利与水务所包含的应用场景有哪些?二者有何区别

水利和水务是两个密切相关但有所区别的概念&#xff0c;它们在水资源管理和保护方面各自承担着不同的职责和功能。 定义 智慧水务&#xff1a;智慧水务是指通过物联网、大数据、云计算、人工智能等新一代信息技术&#xff0c;对城市供水、排水、污水处理、水质监测等水务系统…...

Qt Creator项目构建配置说明

QT安装好之后&#xff0c;在安装目录的Tools\QtCreator\bin下找到qtcreator.exe文件并双击打开 点击文件-新建文件或项目 选择Qt Widgets Application 设置项目名称以及路径 make工具选择qmake&#xff08;cmake还未尝试过&#xff09; 设置主界面对应类的名称、父类&#…...

进程间通信的“五大武器”

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…...

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(六)

实战训练1—输出九九乘法表 问题描述: 在学校里学过九九乘法表&#xff0c;编程实现打印九九乘法表。 输入格式&#xff1a; 无输入 输出格式&#xff1a; 1*11 2*12 2*24 3*13 3*26 3*39 4*14 4*28 4*312 4*416 5*15 5*210 5*315 5*420 5*525 6*16 6*212 6*318 6*424 6*5…...

封装echarts成vue component

封装echarts成vue component EChartsLineComponent 文章目录 封装echarts成vue component EChartsLineComponent封装说明重写重点EChartsLineComponent的源码 使用说明调用EChartsLineComponent示例源码 封装说明 为了减少一些公共代码和方便使用echarts的line图形&#xff0c…...

uniapp Stripe 支付

引入 Stripe npm install stripe/stripe-js import { loadStripe } from stripe/stripe-js; Stripe 提供两种不同类型组件 Payment Element 和 Card Element&#xff1a;如果你使用的是 Payment Element&#xff0c;它是一个更高级别的组件&#xff0c;能够自动处理多种支…...

Windows onnxruntime编译openvino

理论上来说&#xff0c;可以直接访问 ONNXRuntime Releases 下载 dll 文件&#xff0c;然后从官方文档中下载缺少的头文件以直接调用&#xff0c;但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下&#xff0c;例如…...

vue3+TS+vite中Echarts的安装与使用

概述 技术栈&#xff1a;Vue3TsViteEcharts 简述&#xff1a;图文详解&#xff0c;教你如何在Vue项目中引入Echarts&#xff0c;封装Echarts组件&#xff0c;并实现常用Echats图列 文章目录 一&#xff0c;效果图 二&#xff0c;引入Echarts 2.1安装Echarts 2.2main.ts中引…...

期末算法分析程序填空题

目录 5-1 最小生成树&#xff08;普里姆算法&#xff09; 5-2 快速排序&#xff08;分治法&#xff09; 输入样例&#xff1a; 输出样例&#xff1a; 5-3 归并排序(递归法) 输入样例&#xff1a; 输出样例&#xff1a; 5-4 求解编辑距离问题&#xff08;动态规划法&#xff09;…...

搭建android开发环境 android studio

1、环境介绍 在进行安卓开发时&#xff0c;需要掌握java&#xff0c;需要安卓SDK&#xff0c;需要一款编辑器&#xff0c;还需要软件的测试环境&#xff08;真机或虚拟机&#xff09;。 早起开发安卓app&#xff0c;使用的是eclipse加安卓SDK&#xff0c;需要自行搭建。 目前开…...

R语言6种将字符转成数字的方法,写在新年来临之际

咱们临床研究中&#xff0c;拿到数据后首先要对数据进行清洗&#xff0c;把数据变成咱们想要的格式&#xff0c;才能进行下一步分析&#xff0c;其中数据中的字符转成数字是个重要的内容&#xff0c;因为字符中常含有特殊符号&#xff0c;不利于分析&#xff0c;转成数字后才能…...

RocketMQ学习笔记(持续更新中......)

目录 1. 单机搭建 2. 测试RocketMQ 3. 集群搭建 4. 集群启动 5. RocketMQ-DashBoard搭建 6. 不同类型消息发送 1.同步消息 2. 异步消息发送 3. 单向发送消息 7. 消费消息 1. 单机搭建 1. 先从rocketmq官网下载二进制包&#xff0c;ftp上传至linux服务器&#xff0c…...

强化学习的基础概念

这节课会介绍一些基本的概念&#xff0c;并结合例子讲解。 在马尔科夫决策框架下介绍这些概念 本博客是基于西湖大学强化学习课程的视屏进行笔记的&#xff0c;这是链接&#xff1a; 课程链接 目录 强化学习的基本概念 state和state space Action和Action Space State transiti…...

excel怎么删除右边无限列(亲测有效)

excel怎么删除右边无限列&#xff08;亲测有效&#xff09; 网上很多只用第1步的&#xff0c;删除了根本没用&#xff0c;还是存在&#xff0c;但是隐藏后取消隐藏却是可以的。 找到右边要删除的列的第一个空白列&#xff0c;选中整个列按“ctrlshift>(向右的小箭头)”&am…...

STM32-笔记23-超声波传感器HC-SR04

一、简介 HC-SR04 工作参数&#xff1a; • 探测距离&#xff1a;2~600cm • 探测精度&#xff1a;0.1cm1% • 感应角度&#xff1a;<15 • 输出方式&#xff1a;GPIO • 工作电压&#xff1a;DC 3~5.5V • 工作电流&#xff1a;5.3mA • 工作温度&#xff1a;-40~85℃ 怎么…...

深入解析Keil MDK编译流程:从C代码到单片机运行的完整过程

1. 项目概述&#xff1a;从源码到芯片运行的旅程作为一名在嵌入式领域摸爬滚打了十多年的老工程师&#xff0c;我经常被问到这样一个问题&#xff1a;“我写的C代码&#xff0c;点一下MDK的‘Build’按钮&#xff0c;怎么就变成能在单片机里跑的程序了&#xff1f;” 这背后&am…...

Pixelle-Video:如何让AI为您的声音创作注入灵魂?

Pixelle-Video&#xff1a;如何让AI为您的声音创作注入灵魂&#xff1f; 【免费下载链接】Pixelle-Video &#x1f680; AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 在AI视频创作的…...

从ST转战小华HC32F448:一个电机控制老兵的实战避坑与快速上手指南

从ST转战小华HC32F448&#xff1a;一个电机控制老兵的实战避坑与快速上手指南 当国产MCU的性价比优势逐渐凸显&#xff0c;越来越多的工程师开始关注小华半导体这类新兴玩家。作为深耕电机控制领域多年的开发者&#xff0c;我最近在变频器项目中尝试了HC32F448这颗芯片&#xf…...

Windows 11 LTSC微软商店安装终极指南:5分钟快速解决方案

Windows 11 LTSC微软商店安装终极指南&#xff1a;5分钟快速解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore Windows 11 LTSC版本以其卓越的稳…...

OpenClaw 接入 DeepSeek 模型完整配置教程(2026 最新版)

OpenClaw 接入 DeepSeek 模型完整配置教程 一、前置准备 已安装并正常运行 OpenClaw Windows 客户端&#xff1b;OpenClaw 顶部 Gateway 状态保持在线&#xff1b;电脑网络正常&#xff0c;可稳定访问 DeepSeek 开放平台&#xff1b;准备可接收验证码的手机号或微信账号&…...

5步快速上手!罗技鼠标宏终极压枪教程:告别手残轻松吃鸡

5步快速上手&#xff01;罗技鼠标宏终极压枪教程&#xff1a;告别手残轻松吃鸡 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生…...

Keil MDK-ARM许可证错误-25的解决方案

1. 问题现象与背景解析最近在升级Keil MDK-ARM到新版本后&#xff0c;不少开发者遇到了一个棘手的许可证错误。当尝试编译项目时&#xff0c;系统会弹出如下错误提示&#xff1a;Error: A9555E: License checkout for feature mdk_xxx_compiler5 with version 5.0201411 has be…...

K210+STM32F103C8T6低成本送药小车全流程:从硬件选型到代码调试避坑

K210STM32F103C8T6低成本送药小车全流程&#xff1a;从硬件选型到代码调试避坑 当电子竞赛遇上嵌入式开发&#xff0c;一个融合视觉识别与运动控制的送药小车项目&#xff0c;往往成为检验技术实力的试金石。本文将带你从零开始&#xff0c;用K210视觉模块与STM32F103C8T6主控芯…...

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门

汇编新手避坑指南&#xff1a;搞懂AX、BX、CX、DX这些“双面”寄存器&#xff0c;才算入门 第一次接触汇编语言时&#xff0c;那些神秘的寄存器名称总让人望而生畏。尤其是AX、BX、CX、DX这几个"双面人"&#xff0c;一会儿能拆成AH和AL&#xff0c;一会儿又能合体使用…...

告别ActiveX!用WebSocket+JavaScript在Chrome/Firefox里直接调用扫描仪(附完整代码)

现代浏览器无插件扫描方案&#xff1a;WebSocket与JavaScript的完美结合 曾几何时&#xff0c;企业办公系统中扫描文档需要依赖特定的浏览器和插件。如今&#xff0c;随着技术演进&#xff0c;我们终于可以摆脱ActiveX和NPAPI的束缚&#xff0c;在Chrome、Firefox等现代浏览器中…...