当前位置: 首页 > wzjs >正文

昆明网站建设服务至上建站为应用技术

昆明网站建设服务至上,建站为应用技术,基于C 的网站开发源码,企业门户定制网站建设公司动态规划解决最小下降路径和问题 1. 题目链接 LeetCode 931. 最小下降路径和 2. 题目描述 给定一个 n x n 的整数矩阵 matrix,找到一条从第一行到最后一行的下降路径,使得路径上的数字和最小。下降路径可以从第一行的任意元素出发,每一步…

动态规划解决最小下降路径和问题

1. 题目链接

LeetCode 931. 最小下降路径和

2. 题目描述

给定一个 n x n 的整数矩阵 matrix,找到一条从第一行到最后一行的下降路径,使得路径上的数字和最小。下降路径可以从第一行的任意元素出发,每一步可以选择位于下一行正下方、左下方或右下方的元素。例如,位于 (i, j) 的元素可以下降到 (i+1, j-1)(i+1, j)(i+1, j+1)

3. 示例分析

示例输入

matrix = [[2,1,3],[6,5,4],[7,8,9]]

输出13
解释:最小下降路径为 1 → 5 → 7,路径和为 1 + 5 + 7 = 13

4. 算法思路

动态规划(Dynamic Programming)

使用动态规划解决该问题的核心思想是:定义 dp[i][j] 表示从第一行到达第 i 行第 j 列的最小路径和。为了处理边界条件(如矩阵边缘的列),我们扩展 dp 数组的边界,使其维度为 (n+1) x (n+2)

状态转移方程

对于每个位置 (i, j),其路径和的最小值由上一行的三个可能的位置决定:

dp[i][j] = matrix[i-1][j-1] + min(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1])

其中,matrix[i-1][j-1] 是当前位置的值,dp[i-1][...] 是上一行左、中、右三个位置的路径和的最小值。

初始化
  • dp[0][...] = 0:第一行的所有位置初始化为0,表示从虚拟的第0行出发的路径和为0。
  • 其余位置初始化为 INT_MAX,表示尚未计算。

5. 边界条件与注意事项

  1. 矩阵大小为1的情况:当 n=1 时,直接返回矩阵中唯一的元素。
  2. 索引转换:由于 dp 数组比原矩阵多一圈,访问 matrix 时需要将索引调整为 i-1j-1
  3. 处理边缘列:在矩阵的最左列(j=1)和最右列(j=n),需要确保不会访问到无效的列(如 j=0j=n+1),此时这些位置的 dp 值为 INT_MAX,不影响取最小值。

6. 代码实现

class Solution {
public:int minFallingPathSum(vector<vector<int>>& matrix) {int n = matrix.size();vector<vector<int>> dp(n + 1, vector<int>(n + 2, INT_MAX));// 初始化:从虚拟的第0行出发,路径和为0for (int j = 0; j < n + 2; j++) dp[0][j] = 0;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {// 状态转移:取上一行左、中、右的最小值dp[i][j] = matrix[i - 1][j - 1] + min(min(dp[i - 1][j - 1], dp[i - 1][j]), dp[i - 1][j + 1]);}}// 遍历最后一行,寻找最小值int ret = INT_MAX;for (int j = 0; j < n + 2; j++) {ret = min(ret, dp[n][j]);}return ret;}
};

代码解释

  1. 初始化 dp 数组:第0行初始化为0,其他位置为 INT_MAX
  2. 填充 dp 数组:遍历每一行,根据上一行的三个相邻位置的最小值更新当前值。
  3. 获取结果:遍历最后一行的所有列,找到最小值作为最终结果。

通过这种动态规划的方式,时间复杂度为 O(n²),空间复杂度为 O(n²),能够高效解决该问题。

http://www.dtcms.com/wzjs/476064.html

相关文章:

  • 上海网站空间租用seo大牛
  • 专业做制作网站文件外链生成网站
  • 成都网站建设有名的在百度上打广告找谁推广产品
  • 网站建设视频演示my63777免费域名查询2023年
  • 近期军事新闻广州网站优化公司如何
  • wordpress全站ajax方法营销推广平台
  • 凡科网做网站的图片网络宣传推广方案
  • 上海网站建设优化公司旅游企业seo官网分析报告
  • 那些网站是做俄罗斯鞋子宁波网站制作与推广价格
  • 党风廉政建设网站网络舆情分析研判报告
  • 阿里云云服务器官网石家庄seo推广
  • 做电商需要学什么山西seo推广
  • 百度推广怎么做效果好南宁排名seo公司
  • 做网站公司哪家正规怎么自己制作一个网站
  • 网站规划与设计案例seo最强
  • 找美国的建站公司做网站公关团队
  • 安溪哪里有学做网站怎么搭建自己的网站
  • 论坛网站论坛网站建设建设2023年适合小学生的新闻有哪些
  • 外贸网站建设案例网站推广关键词排名优化
  • 怎么把自己笔记本做服务器做个网站技术培训学校机构
  • jcms网站建设网页制作在线生成
  • 做企业手机网站国外seo大神
  • 无锡手机网站制作百度站长平台如何添加网站
  • 社区网站如何做拼多多代运营公司十大排名
  • 手机网站logo成都公司建站模板
  • 手机网站建设教程视频教程广告推广策划
  • 东莞集团网站建设不受限制的搜索引擎
  • 网站建设合同用贴印花税吗今日热点新闻事件标题
  • 分析杭州高端网站建设开发的区别百度热度指数排行
  • 购买网站app制作百度广告搜索引擎