宁夏微信网站建设广西网站建设企业

news/2025/9/22 21:28:49/文章来源:
宁夏微信网站建设,广西网站建设企业,网站小程序定制公司,凡科可以做返利网站吗关键词#xff1a; 重叠子问题#xff1b;每一个状态一定是由上一个状态推导出来(类似数列a^n f(a^n-1,a^n-2)) 步骤#xff1a; 确定dp数组#xff08;dp table#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 题目#…关键词 重叠子问题每一个状态一定是由上一个状态推导出来(类似数列a^n f(a^n-1,a^n-2)) 步骤         确定dp数组dp table以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组 题目  509. 斐波那契数  动规五部曲 这里我们要用一个一维dp数组来保存递归的结果 确定dp数组以及下标的含义 dp[i]的定义为第i个数的斐波那契数值是dp[i] 确定递推公式 为什么这是一道非常简单的入门题目呢 因为题目已经把递推公式直接给我们了状态转移方程 dp[i] dp[i - 1] dp[i - 2]; dp数组如何初始化 题目中把如何初始化也直接给我们了如下 dp[0] 0; dp[1] 1;确定遍历顺序 从递归公式dp[i] dp[i - 1] dp[i - 2];中可以看出dp[i]是依赖 dp[i - 1] 和 dp[i - 2]那么遍历的顺序一定是从前到后遍历的 举例推导dp数组 按照这个递推公式dp[i] dp[i - 1] dp[i - 2]我们来推导一下当N为10的时候dp数组应该是如下的数列 0 1 1 2 3 5 8 13 21 34 55 class Solution { public:int fib(int N) {if (N 1) return N;vectorint dp(N 1);dp[0] 0;dp[1] 1;for (int i 2; i N; i) {dp[i] dp[i - 1] dp[i - 2];}return dp[N];} }; 70. 爬楼梯 确定dp数组以及下标的含义 dp[i] 爬到第i层楼梯有dp[i]种方法 确定递推公式 从dp[i]的定义可以看出dp[i] 可以有两个方向推出来。 首先是dp[i - 1]上i-1层楼梯有dp[i - 1]种方法那么再一步跳一个台阶不就是dp[i]了么。 还有就是dp[i - 2]上i-2层楼梯有dp[i - 2]种方法那么再一步跳两个台阶不就是dp[i]了么。 那么dp[i]就是 dp[i - 1]与dp[i - 2]之和 所以dp[i] dp[i - 1] dp[i - 2] 。 dp数组如何初始化 dp[1] 1dp[2] 2这个初始化大家应该都没有争议的。 所以我的原则是不考虑dp[0]如何初始化只初始化dp[1] 1dp[2] 2然后从i 3开始递推这样才符合dp[i]的定义。 确定遍历顺序 从递推公式dp[i] dp[i - 1] dp[i - 2];中可以看出遍历顺序一定是从前向后遍历的 举例推导dp数组 举例当n为5的时候dp tabledp数组应该是这样的 // 版本一 class Solution { public:int climbStairs(int n) {if (n 1) return n; // 因为下面直接对dp[2]操作了防止空指针vectorint dp(n 1);dp[1] 1;dp[2] 2;for (int i 3; i n; i) { // 注意i是从3开始的dp[i] dp[i - 1] dp[i - 2];}return dp[n];} }; 746. 使用最小花费爬楼梯 确定dp数组以及下标的含义 使用动态规划就要有一个数组来记录状态本题只需要一个一维数组dp[i]就可以了。 dp[i]的定义到达第i台阶所花费的最少体力为dp[i]。 确定递推公式 可以有两个途径得到dp[i]一个是dp[i-1] 一个是dp[i-2]。 dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] cost[i - 1]。 dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] cost[i - 2]。 那么究竟是选从dp[i - 1]跳还是从dp[i - 2]跳呢 一定是选最小的所以dp[i] min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2]); dp数组如何初始化 所以初始化 dp[0] 0dp[1] 0; 确定遍历顺序 因为是模拟台阶而且dp[i]由dp[i-1]dp[i-2]推出所以是从前到后遍历cost数组就可以了。 举例推导dp数组 拿示例2cost [1, 100, 1, 1, 1, 100, 1, 1, 100, 1] 来模拟一下dp数组的状态变化如下 class Solution { public:int minCostClimbingStairs(vectorint cost) {vectorint dp(cost.size() 1);dp[0] 0; // 默认第一步都是不花费体力的dp[1] 0;for (int i 2; i cost.size(); i) {//与上一题区别在于这里取两者最小dp[i] min(dp[i - 1] cost[i - 1], dp[i - 2] cost[i - 2]);}return dp[cost.size()];} }; 62. 不同路径 按照动规五部曲来分析 确定dp数组dp table以及下标的含义 dp[i][j] 表示从0 0出发到(i, j) 有dp[i][j]条不同的路径。 确定递推公式 想要求dp[i][j]只能有两个方向来推导出来即dp[i - 1][j] 和 dp[i][j - 1]。 dp[i - 1][j] 是从(0, 0)的位置到(i - 1, j)有几条路径dp[i][j - 1]同理。 所以dp[i][j] dp[i - 1][j] dp[i][j - 1]因为dp[i][j]只有这两个方向过来。 dp数组的初始化 如何初始化呢首先dp[i][0]一定都是1因为从(0, 0)的位置到(i, 0)的路径只有一条那么dp[0][j]也同理。 所以初始化代码为 for (int i 0; i m; i) dp[i][0] 1; for (int j 0; j n; j) dp[0][j] 1;确定遍历顺序 这里要看一下递推公式dp[i][j] dp[i - 1][j] dp[i][j - 1]dp[i][j]都是从其上方和左方推导而来那么从左到右一层一层遍历就可以了。 这样就可以保证推导dp[i][j]的时候dp[i - 1][j] 和 dp[i][j - 1]一定是有数值的。 举例推导dp数组 如图所示 class Solution { public:int uniquePaths(int m, int n) {vectorvectorint dp(m, vectorint(n, 0));for (int i 0; i m; i) dp[i][0] 1;for (int j 0; j n; j) dp[0][j] 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];} };

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

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

相关文章

9.16 总结

这天没考好。 T1 就是你会发现这个距离是一个求和的形式,你要维护绝对值,这很不好。于是你考虑转切比雪夫再用线段树维护就做完了。 T2 这个题就是往行和列之间连边,然后发现可以定向,因此要求出最小生成基环树森林…

Halcon抛出异常日志

Halcon 抛出异常日志 // 捕获Halcon异常并生成格式化的错误日志信息 // 参数说明: // - HDevExpDefaultException:Halcon异常对象引用,包含具体的异常信息 // - functName:发生异常的函数名称,用于日志定位 // - …

计算机网站建设论文.阿里云个人备案可以做企业网站吗

在Mac电脑上使用VS Code进行PHP开发并关联操作MySQL数据库,然后将数据库部署到ECS。 1.安装PHP和MySQL 确保你的Mac上已经安装了PHP和MySQL。你可以使用Homebrew来安装它们: $ brew install php $ brew install mysql 安装mysql完成后记住这一句: …

免费开源网站系统有哪些网站解析加速

在vue项目中&#xff0c;使用elementui 框架&#xff0c;做一个后台管理系统 在写左边菜单&#xff0c;菜用了&#xff0c;elementui 提供的组件 &#xff0c; el-menu 组件。但是组件没有链接&#xff0c;而我们知道添加链接使用router-link标签代码如下&#xff1a; <el-…

大数据对网站建设教育的影响网站建设公司高端

信息打点-CDN绕过 文章目录 信息打点-CDN绕过本节思维导图相关链接&工具站&项目工具前置知识&#xff1a;CDN配置&#xff1a;配置1&#xff1a;加速域名-需要启用加速的域名配置2&#xff1a;加速区域-需要启用加速的地区配置3&#xff1a;加速类型-需要启用加速的资源…

设计一个公司网站多少钱wordpress回复微信查看

Django REST Framework (DRF) 提供了丰富的视图类&#xff0c;用于构建 API 视图。这些视图类可以分为以下几类&#xff1a; 1. 基础视图类 这些是 DRF 中最基础的视图类&#xff0c;通常用于实现自定义逻辑。 常用类 APIView&#xff1a; 最基本的视图类&#xff0c;所有其…

做亚马逊需要的图片外链网站wordpress 是否添加封面

一、文章摘要 在安卓应用开发中&#xff0c;数据存储管理是关键环节之一&#xff0c;涉及到用户数据的持久化、应用程序状态的保存以及离线内容的缓存等场景。本文将探讨安卓数据存储管理的使用场景、应用前景&#xff0c;以及各种技术的优劣分析&#xff0c;同时附上相关代码示…

海口自助建站系统平湖做网站

北理工通信课题组辛喆同学在本科毕业设计《基于嵌入式系统的步态识别的研究》中&#xff0c;成功将深度步态识别算法GaitSet移植到全志V853开发板上。本研究在CASIA-B数据集上进行测试&#xff0c;正常行走状态下该系统的步态识别准确率达到了94.9%&#xff0c;背包行走和穿外套…

开发软件网站商城系统小说

国际贸易理论模拟题 一单选题 1.《中华人民共和国保障措施条例》最后一次修订是在(). A.2001年11月 B.2002年1月 C.2003年11月 D.2004年3月 2.保障措施与反倾销性质上的差异表现为(). A.实施保障措施所必须满足的前提条件要比实施反倾销的前提条件更为严格 B.保障措施的实施期…

衡水网站建设一多软件高端集团网站建设公司

二维数组 在C语言中&#xff0c;定义二维数组时需要指定行和列的大小。在引用中&#xff0c;int a[][3]{1,2,3,4,5,6,7,8}定义了一个二维数组a&#xff0c;其中有两行三列&#xff0c;即a[0]1, a2, a3, a4, a5, a6。而int a[]则是错误的定义方式&#xff0c;因为在定义时必须指…

企业网站的维护万网主机 网站访问

题目要求 思路 1.先将开始时间和结束时间拆分放到两个数组中进行排序 2.如果开始的时间小于结束时间&#xff0c;说明目前没有空闲的人&#xff0c;需要增加人&#xff0c;如果大于等于&#xff0c;说明有人刚结束了主持&#xff0c;可以进行新的主持了&#xff0c;变更到下一…

[PaperReading] Mind Search: Mimicking Human Minds Elicits Deep AI Searcher

目录MindSearch: Mimicking Human Minds Elicits Deep AI SearcherTL;DRMethodOverall FrameworkWebPlannerWebSearcher关键步骤Experiment总结与思考相关链接 MindSearch: Mimicking Human Minds Elicits Deep AI Sea…

Automatically Naming the Screenshots to Steam

Automatically Naming the Screenshots to Steam The Problem I want to upload my own screenshot to steam, but I found that the methods I found are a bit tedious. Steam expects screenshots to follow a spec…

穷举法(c语言版)

我们的日常生活中,经常会遇到一些需要解决的小问题,这些问题可能并不需要复杂的算法,但是如果我们能够运用穷举算法的思想,就能够轻松地找到问题的答案。本文将介绍穷举算法的基本思想,并通过程序示例来深入了解它…

ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发

ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

01 Tasking IDE软件安装及新建工程

01 Tasking IDE软件安装及新建工程1.Tasking简介 Tasking IDE是由Altium公司开发的一款专注于嵌入式系统开发的集成开发环境(IDE),特别适合于英飞凌(Infineon)微控制器的开发作。官方网址:https://www.tasking.c…

义乌网站推广学院网站建设目的与意义

1、你的真心很珍贵&#xff0c;别再不值得的人身上卑微 &#xff0c;爱应该是让你笑的开怀&#xff0c;而不是哭的崩溃。爱必须是温情的依赖&#xff0c;而不是冷漠的伤害。想要找你的人走遍了全世界也能找到你&#xff0c;等到了年华老去也会等着你。 2、大冬天的时候给你送吃…

寻找网站建设员广州网站建设专注乐云seo

基于WIN10的64位系统演示 一、写在前面 本期开始&#xff0c;我们继续学习深度学习图像目标检测系列&#xff0c;SSD&#xff08;Single Shot MultiBox Detector&#xff09;模型。 二、SSD简介 SSD&#xff08;Single Shot MultiBox Detector&#xff09;是一种流行的目标检…

做花茶网站解说大庆市住房和城乡建设局网站

该知识领域涉及如下考点&#xff0c;具体内容分布于如下各个子章节&#xff1a; 理解安全并将其融入软件开发生命周期 (SDLC) 中在软件开发环境中识别和应用安全控制评估软件安全的有效性评估获得软件对安全的影响定义并应用安全编码准则和标准 6.1. 系统开发控制 6.1.1. 软…

网站支付链接怎么做张家港网页设计培训

同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法&#xff0c;因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。 安装好mysql后&#x…