【算法】动态规划之DP问题(5.10更新完)

 前言:

本系列是看的B站董晓老师所讲的知识点做的笔记

董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com)

树塔-记忆化搜索

特点(前提):从上向下的累加和是不能重复使用的,从下向上的累加和是可以重复使用的

把题目变成二叉树的形式:4的左子树分别是下一行的8和下一行右边的3,依次类推,每一个树的左子树都是他的下一行的数和下一行数的右边的那个数

int a[9][9] =
{   {1},{4,6},{8,3,9},{5,7,2,1}};int n = 4;int f[9][9];//记录从上向下的累加和int dfs(int x, int y){if (f[x][y] != 0) return f[x][y];//说明该点已经遍历过if (x == n - 1) f[x][y] = a[x][y];//说明已经全部遍历完了elsef[x][y] = a[x][y] + max(dfs(x + 1, y), dfs(x + 1, y + 1));return f[x][y];}

线性DP

数塔

int calu(int x, int y)
{int x,  y;for (x = n - 2; x >= 0; x--)for (y = 0; y <= x; y++)//这样就可以弄成塔的形式a[x][y] += max(a[x + 1][y], a[x + 1][y + 1]);cout << "max=" << a[x][y];
}

如果需要输出路径的话,需要有一个前驱路径数组p[x][y]和一个备份数组b[x][y];

前驱路径数组主要是记录y的增值的,把两种情况(a[x + 1][y]>/<=a[x + 1][y + 1])分别设为0和1,r然后在通过遍历数组b[x][y],y=y+p[x][y]进行输出

最长上升子序列

动态规划(O(n²))

for (int i = 1; i <= n; i++) f[i] = 1;//把初始化化长度都设为1for (int i = 2; i <= n; i++){for (int j = 1; j < i; j++)if (a[i] > a[j]) f[i] = max(f[j] + 1,f[i]);//分别依次计算不同下标时候的长度for (int i = 1; i <= n; i++) ans = max(ans, f[i]);//遍历寻找长度最长的长度}

二分查找

最长公共子序列

最长公共子串

编辑距离

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

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

相关文章

力扣41. 缺失的第一个正数

Problem: 41. 缺失的第一个正数 文章目录 题目描述思路复杂度Code 题目描述 思路 1.将nums看作为一个哈希表&#xff0c;每次我们将数字n移动到nums[n - 1]的位置(例如数字1应该存在nums[0]处…),则在实际的代码操作中应该判断nums[i]与nums[nums[i] - 1]是否相等&#xff0c;若…

Rancher Deployment (Helm)

文章目录 Rancher Deployment (Helm)前期准备创建stl证书 Rancher 部署登录 Rancher Deployment (Helm) 前期准备 创建stl证书 # 模拟域名&#xff0c;公司可以申请内部域名 # VIP bigdata.harbor.com # 10.83.195.250 bigdata.rancher.com# 一般使用公司证书&#xff0c;模…

【管理咨询宝藏96】企业数字化转型的中台战略培训方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏96】企业数字化转型的中台战略培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 数字化转型是指&…

Web3 ETF软件开发

开发Web3 ETF软件涉及到金融、法律和技术等多个领域的专业知识&#xff0c;因此存在以下技术难点&#xff0c;开发Web3 ETF软件是一项复杂的技术挑战&#xff0c;需要综合考虑各种因素。开发人员需要具备较强的技术能力和跨学科知识才能成功开发Web3 ETF软件。北京木奇移动技术…

WEB基础--JDBC基础

JDBC简介 JDBC概述 数据库持久化介绍 jdbc是java做数据库持久化的规范&#xff0c;持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备(断电之后&#xff0c;数据还在&#xff0c;比如硬盘&#xff0c;U盘)中以供之后使用。大多数情况下&#xff0c;特别是企业级…

Jsoncpp介绍

1.简介 Jsoncpp 是一个 C 库&#xff0c;用于解析和生成 JSON 数据。它提供了一个易于使用的 DOM&#xff08;Document Object Model&#xff09;风格的 API&#xff0c;允许开发者以树形结构的方式操作 JSON 数据。 Jsoncpp 是一个C库&#xff0c;允许操作JSON值&#xff0c;…

头歌C语言课程实验(递归函数、嵌套函数)

第1关&#xff1a;递归求阶乘数列 任务描述 题目描述&#xff1a;用递归求Sn1!2!3!4!5!…n!之值&#xff0c;其中n是一个数字。 相关知识&#xff08;略&#xff09; 编程要求 请仔细阅读右侧代码&#xff0c;结合相关知识&#xff0c;在Begin-End区域内进行代码补充。 输…

Spring Framework事件机制

Spring Boot自身并不直接提供一个内置的发布/订阅&#xff08;Pub/Sub&#xff09;消息模型实现&#xff0c;但是它通过集成Spring Framework的核心功能以及与外部消息中间件&#xff08;如RabbitMQ、Kafka&#xff09;的整合&#xff0c;间接支持了发布/订阅模式。Spring Fram…

AI Agent智能应用从0到1定制开发(wanjie)

AI Agent&#xff08;人工智能体&#xff09;是一种能够感知环境、进行决策和执行动作的智能实体。不同于传统的人工智能&#xff0c;AI Agent 具备通过独立思考、调用工具去逐步完成给定目标的能力。 「完结12章」AI Agent智能应用从0到1定制开发 AI Agent 和大模型的区别在…

前端每日基础day1

闭包&#xff08;Closure&#xff09;是指在函数内部创建的函数&#xff0c;它可以访问其外部函数作用域中声明的变量和参数&#xff0c;即使外部函数已经执行完毕&#xff0c;这些变量仍然可以被内部函数访问和操作。换句话说&#xff0c;闭包可以“记住”并访问其词法作用域&…

【管理咨询宝藏95】SRM采购平台建设内部培训方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏95】SRM采购平台建设内部培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 重点是建设一个适应战略采…

PDF转word转ppt软件

下载地址&#xff1a;PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件&#xff0c;电脑自带的又要开会员啥的很麻烦&#xff0c;现在分享这款软件直接激活就可以免费使用了&#xff0c;超级好用&#xff0c;喜欢的可以下载

C++类和对象(基础篇)

前言&#xff1a; 其实任何东西&#xff0c;只要你想学&#xff0c;没人能挡得住你&#xff0c;而且其实学的也很快。那么本篇开始学习类和对象&#xff08;C的&#xff0c;由于作者有Java基础&#xff0c;可能有些东西过得很快&#xff09;。 struct在C中的含义&#xff1a; …

PyTorch模型的保存加载

一、引言 我们今天来看一下模型的保存与加载~ 我们平时在神经网络的训练时间可能会很长&#xff0c;为了在每次使用模型时避免高代价的重复训练&#xff0c;我们就需要将模型序列化到磁盘中&#xff0c;使用的时候反序列化到内存中。 PyTorch提供了两种主要的方法来保存和加…

值模板参数Value Template Parameters

模板通常使用类型作为参数&#xff0c;但它们也可以使用值。使用类型和可选名称声明一个值模板参数&#xff0c;方式与声明函数参数类似。值模板参数仅限于可以指定编译时常量的类型是bool、char、int等&#xff0c;但不允许使用浮点类型、字符串字面值和类。 #include <io…

控制反转(IOC)和依赖注入(DI)

什么是IOC&#xff08;控制反转&#xff09;&#xff1f; IoC 的思想就是将原本在程序中手动创建对象的控制权&#xff0c;交由 Spring 框架来管理。 控制&#xff1a;指的是对象创建&#xff08;实例化、管理&#xff09;的权力 反转&#xff1a;控制权交给外部环境&#xf…

缓存雪崩、击穿、击穿

缓存雪崩&#xff1a; 就是大量数据在同一时间过期或者redis宕机时&#xff0c;这时候有大量的用户请求无法在redis中进行处理&#xff0c;而去直接访问数据库&#xff0c;从而导致数据库压力剧增&#xff0c;甚至有可能导致数据库宕机&#xff0c;从而引发的一些列连锁反应&a…

MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65)

MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 海量点云的处理,需要提前进行抽稀预处理,相比MATLAB预先给出的抽稀方法,这里提供一种基于规则格网的自定义抽稀方法,步骤清晰,便于理解抽稀内涵, 主要涉及到使…

springboot整合rabbitmq的不同工作模式详解

前提是已经安装并启动了rabbitmq&#xff0c;并且项目已经引入rabbitmq&#xff0c;完成了配置。 不同模式所需参数不同&#xff0c;生产者可以根据参数不同使用重载的convertAndSend方法。而消费者均是直接监听某个队列。 不同的交换机是实现不同工作模式的关键组件.每种交换…

DCL 的学习

-- 创建用户 itcast , 只能够在当前主机localhost访问, 密码123456; create user itcastlocalhost identified by 123456; -- 创建用户 heima , 可以在任意主机访问该数据库, 密码123456 ; create user heima% identified by 123456; -- 修改用户 heima 的访问密码为 1234 ; a…