j永久网站重庆市公路建设信息网官网

news/2025/10/9 0:45:22/文章来源:
j永久网站,重庆市公路建设信息网官网,网站源码编辑软件,团购网站做二级域名文章目录 DAY7下降路径最小和最小路径和地下城游戏 DAY7 下降路径最小和 【题目描述】 给你一个 n x n 的 方形 整数数组 matrix #xff0c;请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始#xff0c;并从每一行中选择一个元… 文章目录 DAY7下降路径最小和最小路径和地下城游戏 DAY7 下降路径最小和 【题目描述】 给你一个 n x n 的 方形 整数数组 matrix 请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列即位于正下方或者沿对角线向左或者向右的第一个元素。具体来说位置 (row, col) 的下一个元素应当是 (row 1, col - 1)、(row 1, col) 或者 (row 1, col 1) 。 【输入样例】 matrix [[2,1,3],[6,5,4],[7,8,9]]【输出样例】 13【数据规模与约定】 n matrix.length matrix[i].length1 n 100-100 matrix[i][j] 100 【解题思路】 【C程序代码】 class Solution { public:int minFallingPathSum(vectorvectorint matrix) {int n matrix.size();vectorvectorint dp(n, vectorint(n 2, INT_MAX));for (int i 0; i n; i){dp[i][0] 100;dp[i][n1] 100;}for (int i 1; i n; i){dp[0][i] matrix[0][i - 1];}for (int i 1; i n; i){for (int j 1; j n; j){dp[i][j] matrix[i][j - 1] min({ dp[i - 1][j - 1],dp[i - 1][j],dp[i - 1][j 1] });}}int min_num INT_MAX;for (int i 0; i n; i){min_num min(min_num, dp[n - 1][i]);}return min_num;} };最小路径和 【题目描述】 给定一个包含非负整数的 _m_ x _n_ 网格 grid 请找出一条从左上角到右下角的路径使得路径上的数字总和为最小。 说明每次只能向下或者向右移动一步。 【输入样例】 grid [[1,3,1],[1,5,1],[4,2,1]]【输出样例】 7【数据规模与约定】 m grid.lengthn grid[i].length1 m, n 2000 grid[i][j] 200 【解题思路】 通过题目得出dp[i]表示的是走到当前位置时的最小路径和。由因为题目要求只能向下或者向右走一步所以dp[i]应该是上面的格子或者右边的格子其中小的那个加上当前位置的值。 【C程序代码】 class Solution { public:int minPathSum(vectorvectorint grid) {int row grid.size();int col grid[0].size();vectorvectorint dp(row 1, vectorint(col 1,INT_MAX));dp[0][1] 0;dp[1][0] 0;for (int i 1; i row; i){for (int j 1; j col; j){dp[i][j] min(dp[i - 1][j], dp[i][j - 1]) grid[i - 1][j - 1];}}return dp[row][col];} };地下城游戏 【题目描述】 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下他会立即死亡。 有些房间由恶魔守卫因此骑士在进入这些房间时会失去健康点数若房间里的值为_负整数_则表示骑士将损失健康点数其他房间要么是空的房间里的值为 0要么包含增加骑士健康点数的魔法球若房间里的值为_正整数_则表示骑士将增加健康点数。 为了尽快解救公主骑士决定每次只 向右 或 向下 移动一步。 返回确保骑士能够拯救到公主所需的最低初始健康点数。 注意 任何房间都可能对骑士的健康点数造成威胁也可能增加骑士的健康点数包括骑士进入的左上角房间以及公主被监禁的右下角房间。 【输入样例】 dungeon [[-2,-3,3],[-5,-10,1],[10,30,-5]]【输出样例】 7【数据规模与约定】 m dungeon.lengthn dungeon[i].length1 m, n 200-1000 dungeon[i][j] 1000 【解题思路】 这个问题是一个典型的动态规划问题。我们需要找到英勇骑士拯救公主时所需的最低初始健康点数。为了解决这个问题我们可以从终点开始即公主所在的右下角逆向思考骑士到达每个房间所需的最低健康点数。这样我们可以确保骑士在任何时刻的健康点数都不会低于1。 动态规划状态定义 我们定义 dp[i][j] 为从点 (i, j) 到达终点所需的最低健康点数。因此dp[0][0] 就是我们要找的答案。 边界条件 dp[m-1][n-1]这是公主所在的房间骑士至少需要1点健康如果这个房间的值为正则骑士只需要1点健康即可如果为负则骑士需要足够的健康点数以确保他在离开这个房间时至少有1点健康。因此dp[m-1][n-1] max(1, 1 - dungeon[m-1][n-1])。边界的其他点对于最下面一行row和最右边一列col骑士只能向右或者向下移动因此每个点的 dp 值依赖于它右边或者下面的点的 dp 值。 状态转移方程 对于非边界点 (i, j)骑士可以从 (i1, j)下方或 (i, j1)右方到达 (i, j)。因此dp[i][j] 依赖于 dp[i1][j] 和 dp[i][j1]。骑士在 (i, j) 点的健康点数必须足以让他能够到达 (i1, j) 或 (i, j1)同时保持至少1点健康。因此状态转移方程为 dp[i][j] max(1, min(dp[i1][j], dp[i][j1]) - dungeon[i][j]) 这里 max(1, x) 确保了在任何时刻骑士的健康点数至少为1。 计算顺序 由于我们从终点开始反向计算所以我们应该从右下角开始首先计算最后一行和最后一列然后向左上方移动直到计算到 dp[0][0]。 实现细节 初始化 dp 数组除了 dp[row-1][col-1] 之外其他所有 dp[row][col] 均设为 INT_MAX。从右下角开始逆向遍历计算每个 dp[i][j]。返回 dp[0][0] 作为结果。 【C程序代码】 class Solution { public:int calculateMinimumHP(vectorvectorint dungeon) {int row dungeon.size();int col dungeon[0].size();vectorvectorint dp(row 1, vectorint(col 1,INT_MAX));dp[row][col - 1] dp[row - 1][col] 1;for (int i row - 1; i 0; i--){for (int j col - 1; j 0; j--){dp[i][j] min(dp[i][j 1], dp[i 1][j]) - dungeon[i][j];dp[i][j] max(dp[i][j], 1);}}return dp[0][0];} };代码详解 在这段代码中我们初始化了一个 (row 1) x (col 1) 大小的 dp 数组并将除 dp[row][col - 1] 和 dp[row - 1][col] 外的所有元素设置为 INT_MAX这样做是为了确保在逆向计算过程中我们不会用到这些未初始化的状态值。 然后我们从 dp[row - 1][col - 1] 即公主所在的房间开始向左上方逆向遍历对每一个格子 (i, j)计算所需的最小初始健康点数。这个数值是根据它的右边 (i, j1) 和下边 (i1, j) 的两个格子的 dp 值来得到的。我们取这两个 dp 值中较小的一个然后减去当前格子的 dungeon[i][j] 值如果当前格子是恶魔dungeon[i][j] 将是负数如果是魔法球或空房间dungeon[i][j] 将是非负数以此来计算骑士在进入格子 (i, j) 前所需的最小健康点数。最后我们需要确保这个数值至少为1因为骑士的健康点数不能少于1。 最终dp[0][0] 就是我们要找的答案即骑士从左上角出发所需的最小初始健康点数。

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

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

相关文章

.net做网站的方式深一网站建设招聘

最近在微信看到一篇文章介绍说批量将ppt文件转化为pdf文件,自己尝试了一下,后面想能否自己封装一个类,既能将ppt转换为pdf,而且能够将word转换为pdf,或者其他类型转化为pdf。花了半天时间研究和找资料,终于…

找个免费的网站wordpress源码买卖

作业1: 已知一个数组table,用宏定义求出数组元素的个数。 #define NUM sizeof(table)/sizeof(table[0]) 作业2: 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit3,第…

设计师做网站的流程html网页制作小刘在线课程

很多朋友都想在一台服务器上运行多个MySQL Instance,究竟怎么做呢?首先要明晰几个原理, 简称为mysqld读取my.cnf的顺序:第一搜,首先读取/etc/my.cnf,多实例这个配置文件不会存在。:-(第二搜&…

网站广告收费标准wordpress每段不同图片

在 Vue 3 中,Pinia 是一个状态管理库,旨在替代 Vuex,提供更简单和更直观的 API。Pinia 支持 TypeScript,且其设计更符合 Vue 3 的组合式 API。 安装 Pinia 首先,你需要安装 Pinia和pinia-plugin-persistedstate。可以…

哪个网站可以学做包包帝国备份王wordpress

来源:混沌巡洋舰 “问题”(question) 中包含一个非常美妙的词:“ 探索”(quest)。我太喜欢这个词了。——埃利威塞尔(Elie Wiesel)有些人常常感觉一些真相事关重大,自己应…

课程作业

课程作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/25rjjc这个作业的目标 介绍自己并确立课程目标姓名-学号 潘均昊 2023329301031自我介绍: 大家好,我是浙江理工大学2023级自动化1班的潘均昊,我是…

娄底网站建设79ld联通官网

写作背景 Glide 作为著名的图片加载框架,几乎每一个项目都使用到。笔者尝试通过别人的博客来了解 Glide 原理,但是每次都是看着看着就懵逼了,不是因为别人写的不好,而是 Glide 实在是太复杂了,于是决定自己撸一遍&…

网站托管什么意思多媒体网页设计教程

原文地址:http://android.xsoftlab.net/training/displaying-bitmaps/process-bitmap.html 我们在上节课Load Large Bitmaps Efficiently中讨论了BitmapFactory.decode*方法,说到了不应该在UI线程中执行读取数据的过程,尤其是从磁盘或者网络…

vs 2017网站开发php网站开发类型什么意思

文章目录题目描述思路 && 代码二刷最近一直在充电基础知识、维护 leetcode 总结博客 今天继续摸一摸新题目吧~ 题目描述 感觉和 03. 无重复的最长子串 有点像,都是在字符串上用滑动窗口来找子串。并且都是属于那种,解决一次以后&…

海派虫网站推广软件wordpress跳转到登录页面代码

ES6是JavaScript的一个重要版本,其中包含了许多新的语法和特性,其中迭代器和生成器是其中非常重要的特性之一。本文将详细介绍迭代器和生成器的概念、用法以及注意事项。 目录 1. 是什么2. 为什么存在3. 怎么使用3.1 迭代器3.2 生成器3.3 for...of循环3…

昭通网站建设公司自己做的网站怎么放到网上去

图像像素存储形式  对于只有黑白颜色的灰度图,为单通道,一个像素块对应矩阵中一个数字,数值为0到255, 其中0表示最暗(黑色) ,255表示最亮(白色) 对于采用RGB模式的彩色图片&#…

国庆七日赛训总结

前五天跟高中生听noi金牌选手讲课,打的是noip模拟赛,均分150左右。 倒是学到了不少新算法,收获颇丰。 后两天在提高组上课,打s组模拟赛 分别取得190和170,其中两次的t2都是能对,却遇到了除以0re和数组开小的问题…

免费试用网站制作设计说明书范文

用来查询农历年的代码,可能比较粗糙,希望不要太打击偶,哈哈。一,Console.java[用来获取控制台的输入]/*#()Console.java 20:40:25 2/2/2006控制台消息输入/输出。*/import java.io.*;import java.text.SimpleDateFormat;import ja…

湘乡网站seo北京搜索引擎优化主管

入门效果之浮雕 "浮雕"图象效果是指图像的前景前向凸出背景。常见于一些纪念碑的雕刻上。要实现浮雕事实上很easy。我们把图象的一个象素和左上方的象素进行求差运算。并加上一个灰度。这个灰度就是表示背景颜色。这里我们设置这个插值为128 (图象RGB的值是0-255)。同…

task2.c

task2.cinclude <stdio.h> int main() { double a, b, c; scanf_s("%lf%lf%lf" , &a, &b, &c); if (a + b > c and a + c > b and b + c > a)printf("能构成三角形\n"…

还有网站吗建域名做网站

auto的实际价值就是简化代码&#xff0c;类型很长时可以自动推导。也可以用typedef&#xff0c;main函数里面也能typedef&#xff0c;不一定要在全局定义。 &#xff08;1&#xff09;类型别名思考 随着程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂&#xff0c;经…

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) - a

SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关) 目录SpringCloud实用篇02-(Nacos配置管理,Feign远程调用,Gateway服务网关)0.学习目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添…

网站备案后内容小米发布会完整版

CSS语法 1. CSS语法格式 通常情况下语法格式如下: 选择器{属性名:属性值;属性名:属性值;属性名:属性值;... }2. CSS添加方式 2.1 行内样式 直接将样式写在本行的标签内。 <h1><p style"font-size: 48px; color:red;";>行内样式测试</p></…

制作投票的网站青岛网络seo公司

Flutter Boost 是一个 Flutter 插件&#xff0c;它可以帮助开发者在原生应用和 Flutter 应用之间无缝跳转。以下是一些基本步骤&#xff0c;展示了如何使用 Flutter Boost 从原生&#xff08;Native&#xff09;页面跳转到 Flutter 页面。 ### 1. 配置 Flutter Boost 在你的 …

网站的背景图怎么做的vi设计都包括什么

题目描述 一个非递减有序的整型数组有n个元素&#xff0c;给定一个整数num&#xff0c;将num插入该序列的适当位置&#xff0c;使序列仍保持非递减有序。 要求定义一个函数insert()&#xff0c;将整数num插入在数组a的适当位置上&#xff0c;函数原型如下&#xff1a; void …