动态规划探索篇
Leetcode63——不同路径Ⅱ
题目描述:
给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。
网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。
返回机器人能够到达右下角的不同路径数量。
测试用例保证答案小于等于 2 * 109。
示例 1:

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右
算法思想:
利用动态规划的思想,通过bp[][]二位数组记录每到位置(m,n)时有多少种走法。

算法实现:
int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {//起点有障碍直接返回0if (obstacleGrid[0][0] == 1)return 0;/*bp[m][n]表示到位置m,n有多少种不同的路径*/vector<vector<int>> bp(obstacleGrid.size(),vector<int>(obstacleGrid[0].size(), 1));//bp数组第一行的初始化for (int i = 0; i < obstacleGrid[0].size(); i++) {if (obstacleGrid[0][i] == 1) {while (i < obstacleGrid[0].size()) {bp[0][i++] = 0;}}}//bp数组的第一列初始化for (int i = 0; i < obstacleGrid.size(); i++) {if (obstacleGrid[i][0] == 1) {while (i < obstacleGrid.size()) {bp[i++][0] = 0;}}}//bp数组的计算for (int i = 1; i < obstacleGrid.size(); i++) {for (int j = 1; j < obstacleGrid[0].size(); j++) {if (obstacleGrid[i][j] == 1)bp[i][j] = 0;elsebp[i][j] = bp[i - 1][j] + bp[i][j - 1];}}//终点位置及所求返回return bp[obstacleGrid.size() - 1][obstacleGrid[0].size() - 1];}
相关文章:
动态规划探索篇
Leetcode63——不同路径Ⅱ 题目描述: 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。 网格…...
js中多let与var
在 JavaScript 中,let 和 var 都用于声明变量,但它们有一些关键的区别。主要区别包括作用域、变量提升、可重复声明、以及在全局作用域中的行为。 1. 作用域(Scope) let:块级作用域。用 let 声明的变量只在其所在的代…...
基于人工智能的搜索和推荐系统
互联网上的搜索历史分析和用户活动是个性化推荐的基础,这些推荐已成为电子商务行业和在线业务的强大营销工具。随着人工智能的使用,在线搜索也在改进,因为它会根据用户的视觉偏好提出建议,而不是根据每个客户的需求和偏好量身定制…...
冷钱包与热钱包的差异 | 加密货币存储的安全方案
随着加密货币的普及,越来越多的人开始重视加密资产的安全存储问题。钱包作为存储数字资产的工具,主要分为冷钱包和热钱包两大类。它们在安全性、便捷性以及适用场景方面各有优劣。了解这两者的差异,有助于投资者根据自己的需求选择合适的钱包…...
014:无人机遥控器操作
摘要:本文详细介绍了无人机遥控器及其相关操作。首先,解释了油门、升降舵、方向舵和副翼的概念、功能及操作方式,这些是控制无人机飞行姿态的关键部件。其次,介绍了美国手、日本手和中国手三种不同的操作模式,阐述了遥…...
PCL 点云高度归一化
目录 一、概述二、代码示例三、结果一、概述 点云高度归一化:为了消除地形起伏对点云数据高程值的影响,特别是在地物间存在显著高程差异的情况下,必须对点云数据进行归一化处理。这一步骤对于许多算法至关重要,因为它能够显著提升后续点云处理或分割任务的准确性。 归一化处…...
【Effective C++】阅读笔记4
1. 确保公有继承中有is-a的关系 Is-a关系理解 该关系就是派生类应该具备基类的所有特性,并且可以替代基类对象使用,例如猫和狗都是动物的派生类,因为猫和狗都和动物形成了is-a关系,猫和狗都是动物。 在该关系下,派生类…...
浅谈mysql【8.0】链接字符串
string connectionString "serveryour_server;useryour_user;passwordyour_password;databaseyour_database;sslmodenone;allowPublicKeyRetrievaltrue;Allow User VariablesTrue;";在 C# 中配置 MySQL 数据库连接字符串时,可以通过添加多个参数来控制连…...
BERT,RoBERTa,Ernie的理解
BERT: 全称:Bidirectional Encoder Representations from Transformers。可以理解为 “基于 Transformer 的双向编码器表示”。含义:是一种用于语言表征的预训练模型。它改变了以往传统单向语言模型预训练的方式,能够联合左侧和右…...
获取 Wind 数据并进行简单的择时分析
使用Python获取Wind数据并进行简单的择时分析时,需要按照以下步骤操作。 (1)登录Wind官网,在“金融解决方案”的下拉列表里选择“金融终端”选项,如下图3.2所示。 (2)根据自己计算机的实际情况…...
小檗碱的酵母代谢工程生物合成-文献精读78
De novo production of protoberberine and benzophenanthridine alkaloids through metabolic engineering of yeast 将酵母代谢工程应用于原小檗碱和苯并啡啶类生物碱的从头合成 苄基异喹啉类生物碱的微生物合成-文献精读77 香叶醇酵母生产机器学习优化酵母-文献精读66 黄…...
文件指针和写入操作
文件指针位置 w 模式: 打开文件时,文件指针位于文件的开头。如果文件已存在,文件内容会被清空。写入的数据会从文件开头开始覆盖原有内容。 a 模式: 打开文件时,文件指针位于文件的末尾。如果文件已存在,文…...
跨越科技与文化的桥梁——ROSCon China 2024 即将盛大开幕
在全球机器人技术飞速发展的浪潮中,ROS(Robot Operating System)作为一款开源的机器人操作系统,已成为无数开发者、研究人员和企业的首选工具。为了进一步推动ROS的应用与发展,全球知名的机器人操作系统会议——ROSCon…...
springboot+shiro 权限管理
一、为什么要了解权限框架 权限管理框架属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则用户可以访问而且只能访问自己被授权的资源。 目前常见的权限框架有Shiro和Spring Security,本篇文章记录springboot整合sh…...
PureMVC在Unity中的使用(含下载链接)
前言 Pure MVC是在基于模型、视图和控制器MVC模式建立的一个轻量级的应用框架,这种开源框架是免费的,它最初是执行的ActionScript 3语言使用的Adobe Flex、Flash和AIR,已经移植到几乎所有主要的发展平台,支持两个版本框架…...
25国考照片处理器使用流程图解❗
1、打开“国家公务员局”网站,进入2025公务员专题,找到考生考务入口 2、点击下载地址 3、这几个下载链接都可以 4、下载压缩包 5、解压后先看“使用说明”,再找到“照片处理工具”双击。 6、双击后会进入这样的界面,点击&…...
一位纯理科生,跨界自学中医,自行组方治好胃病、颈椎病与高血脂症,并在最权威的中国中医药出版社出版壹本专业中医图书!
这是一位铁杆中医迷, 也是《神农本草经——精注易读本》的作者。 希望更多的人能够受到启发,感受中医之神奇,敢于跨界,爱好中医,学习中医! 一个病人以自己的切身感受与诊断,并使之汤药治愈疾病&…...
运动控制 双轮差速模型轨迹规划
文章目录 一、轨迹规划1.1轨迹平滑与轮迹1.2 目标距离1.3 速度限制1.4 候选速度的计算与调整1.5 路径生成 二、双轮轨迹2.1 计算梯度2.2 计算偏移轨迹2.3 返回结果 一、轨迹规划 1.1轨迹平滑与轮迹 初始时,我们有一条由若干坐标点构成的机器人运行路径。通过对这些…...
使用 Sortable.js 库 实现 Vue3 elementPlus 的 el-table 拖拽排序
文章目录 实现效果Sortable.js介绍下载依赖添加类名导入sortablejs初始化拖拽实例拖拽完成后的处理总结 在开发过程中,我们经常需要处理表格数据,并为用户提供便捷的排序方式。特别是在需要管理长列表、分类数据或动态内容时,拖拽排序功能显得…...
MySQL索引相关介绍及优化(未完...)
如何看一条SQL语句的执行好坏? MySQL提供了自带的工具Explain可以查看sql语句的执行好坏。 explain主要的列: 1:type:这一列表示MySQL决定如何查找表中的行,查找数据行记录的大概范围。 有 system const eq_ref ref…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
