DP:路径规划模型

      

 创作不易,感谢三连支持!

    路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。大多需要用二维dp数组去实现

一、不同路径

. - 力扣(LeetCode)不同路径

class Solution {
public:int uniquePaths(int m, int n) {vector<vector<int>>  dp(m+1,vector<int>(n+1));//创建一个有辅助节点的数组//初始化dp[0][1]画图去理解dp[0][1]=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][n];}
};

二、不同路径2

. - 力扣(LeetCode)不同路径2

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m=obstacleGrid.size(),n=obstacleGrid[0].size();vector<vector<int>>  dp(m+1,vector<int>(n+1));//创建一个dp数组//初始化dp[0][1]dp[0][1]=1;//开始填表for(int i=1;i<=m;++i)   for(int j=1;j<=n;++j)  if(obstacleGrid[i-1][j-1]==0)//判断自己当前的格子是不是障碍物dp[i][j]=dp[i-1][j]+dp[i][j-1];return dp[m][n];}
};

三、珠宝的最高价值

. - 力扣(LeetCode)珠宝的最高价值

class Solution {
public:int jewelleryValue(vector<vector<int>>& frame) {int m=frame.size(),n=frame[0].size();vector<vector<int>>  dp(m+1,vector<int>(n+1));//创建一个dp数组for(int i=1;i<=m;++i)for(int j=1;j<=n;++j)dp[i][j]=max(dp[i-1][j],dp[i][j-1])+frame[i-1][j-1];return dp[m][n];}
};

 四、最小路径和

. - 力扣(LeetCode)最小路径和

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {int m=grid.size(),n=grid[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));dp[0][1]=0;for(int i=1;i<=m;++i)for(int j=1;j<=n;++j)dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];return dp[m][n]; }
};

五、下降路径最小和

. - 力扣(LeetCode)下降路径最小和

class Solution {
public:int minFallingPathSum(vector<vector<int>>& matrix) {int m=matrix.size(),n=matrix[0].size();vector<vector<int>> dp(m+1,vector<int>(n+2,INT_MAX));//加一行,多加两列,两列得是INT MAXfor(int j=0;j<n+2;++j) dp[0][j]=0;//第一行初始化成0for(int i=1;i<=m;++i)for(int j=1;j<=n;++j)dp[i][j]=min(min(dp[i-1][j-1],dp[i-1][j]),dp[i-1][j+1])+matrix[i-1][j-1];//找需要返回的值int ret=INT_MAX;for(int j=1;j<=n;++j) ret=min(ret,dp[m][j]);return ret;}
};

六、地下城游戏

. - 力扣(LeetCode)地下城游戏

class Solution {
public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m=dungeon.size(),n=dungeon[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,INT_MAX));dp[m-1][n]=1;for(int i=m-1;i>=0;--i)for(int j=n-1;j>=0;--j){int mini=min(dp[i+1][j],dp[i][j+1]);dp[i][j]=max(mini-dungeon[i][j],1);//要防止出现大血包}return dp[0][0];}
};

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

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

相关文章

MR混合现实情景实训教学实验系统能帮助解决石油化工专业当前哪些教学困境

MR混合现实情景实训教学实验系统可以帮助石油化工专业解决以下教学困境&#xff1a; 1. 实训环境受限&#xff1a;石油化工专业需要模拟真实的生产环境进行实训&#xff0c;但由于场地、设备等因素的限制&#xff0c;无法为学生提供真实的生产环境。MR混合现实技术可以模拟真实…

重学SpringBoot3-MyBatis的三种分页方式

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-MyBatis的三种分页方式 准备工作环境搭建数据准备未分页效果 1. 使用MyBatis自带的RowBounds进行分页演示 2. 使用物理分页插件演示 3. 手动编写分页SQL…

pcl 凸包ConvexHull

pcl 凸包ConvexHull 头文件等 #include <pcl/surface/convex_hull.h>typedef pcl::PointXYZ PointT; typedef pcl::PointCloud<PointT> CloudT; typedef CloudT::Ptr CP 代码 CP PSO::tubao(CP cloud) {pcl::ConvexHull<PointT> hull;hull.setInputCloud…

openssl3.2 - exp - base64 / unbase64

文章目录 openssl3.2 - exp - base64 / unbase64概述笔记命令行实现程序实现END openssl3.2 - exp - base64 / unbase64 概述 想将2进制内容放到配置文件中, 作为配置项的值. 那先base64一下, 变成可见字符串后再写入配置文件. 先看了官方的命令行实现. 然后从官方命令行实现…

五、Spring源码学习之postProcessBeanFactory方法

简介 在应用程序上下文完成其标准初始化后&#xff0c;修改其内部的BeanFactory。此时&#xff0c;所有的bean定义都已经加载完成&#xff0c;但还没有任何bean被实例化。这允许在某些ApplicationContext实现中注册特殊的BeanPostProcessor等。 在应用程序上下文的初始化过程…

RESTful架构

RESTful架构中的URI设计与传统的URL设计有一些区别。让我通过具体的例子来解释一下&#xff1a; 传统的URL设计通常将操作和资源混合在一起&#xff0c;例如&#xff1a; 获取所有图书&#xff1a;GET /getBooks获取特定图书&#xff1a;GET /getBookById/{id}创建新图书&…

IOS面试题编程机制 11-15

11. 简述对NSUserDefaults的理解?NSUserDefaults,官网上的定义是一个用户默认数据库的接口,在应用程序的启动过程中,持久地存储键值对。每个应用都有一个(也只有一个)NSUserDefaults对象。向NSUserDefaults类发送standardUserDefaults消息可以得到该对象。使用时需要通过键…

代码随想录算法训练营第十七天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

代码随想录算法训练营第十七天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和 110.平衡二叉树 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true题解&#xff1a;平衡…

查看Scala类的方法

文章目录 一、概述如何查看Scala类的方法二、使用Scala文档查看类的方法三、使用反射机制查看类的方法 一、概述如何查看Scala类的方法 本文介绍了在Scala中查看Int类方法的两种方法&#xff1a;使用Scala标准库文档和使用反射机制。通过Scala标准库文档&#xff0c;您可以方便…

【C++庖丁解牛】二叉搜索树(Binary Search Tree,BST)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1. 二叉搜索树概念2. 二叉…

Etcd Raft 协议(进阶篇)

前言 在正式开始介绍 Raft 协议之间&#xff0c;我们有必要简单介绍一下其相关概念。在分布式系统中&#xff0c;一致性是比较常见的概念&#xff0c;所谓一致性指的是集群中的多个节点在状态上达成一致。在程序和操作系统不会崩溃、硬件不会损坏、服务器不会掉电、网络绝对可靠…

建设工程(2)

建设工程(2) 单选题&#xff08;共10题&#xff0c;每题3分&#xff09; 1、《安全韧性城市评价指南》&#xff08;GB/T 40947-2021&#xff09;指出&#xff0c;&#xff08;&#xff09;城市是在灾害环境中能够承受、适应和恢复的城市。 正确答案&#xff1a;B、安全韧性 2、…

JavaScript之Promise补充与Dom操作

Promise过程分析 //按照顺序依次引入a-d.js&#xff0c;最后打印加载完毕load(a.js).then(()>{return load(b.js)//load方法返回Pomise对象//但是没有把这个对象返回//所以这个函数没有返回值//then方法会提供一个空对象作为返回值},()>{console.log(有错误)}).then(()&g…

【Linux】环境变量常见指令操作&基本实验(入门必看!)

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《…

安卓实现翻转时间显示效果

效果 废话不多说上代码 自定义组件 import android.content.Context; import android.content.res.TypedArray; import android.graphics.Camera; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.…

BM83 字符串变形

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param s string字符串 * param n int整型 * return string字符串*/public String trans (String s, int n) {// write co…

RK3568驱动指南|第十三篇 输入子系统-第143章 多对多的匹配关系分析

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

一文全面了解 wxWidgets 的安装

目录 使用二进制文件 从源代码构建 获取源代码 选择构建系统 构建您的应用程序 Unix&#xff0c;命令行 Unix&#xff0c;使用GNU Make MSW&#xff0c;使用Microsoft Visual Studio Mac&#xff0c;使用Xcode 其他IDE wxWidgets的头文件和库必须可用&#xff0c;以便…

ubuntu20.04_PX4_1.13

说在前面&#xff1a;&#xff08;最好找一个干净的Ubuntu系统&#xff09;如果配置环境的过程中出现很多编译的错误或者依赖冲突&#xff0c;还是建议新建一个虚拟机&#xff0c;或者重装Ubuntu系统&#xff0c;这样会避免很多麻烦&#x1f490; &#xff0c; 安装PX4 1.13.2 …

小红书扫码登录分析与python实现

文章目录 1. 写在前面2. 接口分析3. 代码实现 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…