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

2025年--Lc188--931. 下降路径最小和(多维动态规划,矩阵)--Java版

1.题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.思路

因为这题的转移方向是“从上到下”(上一行的 j−1、j、j+1 到下一行 j),所以唯一需要的基线就是第一行:
dp[0][j] = matrix[0][j]。
之后第 i 行的任意列 j 都只依赖 上一行 的值(dp[i-1][*]),自然能算出来,包括第 0 列:

当 j == 0:dp[i][0] 由 dp[i-1][0](正上)和(若存在)dp[i-1][1](右上)转移得到。

当 0 < j < n-1:取 dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1] 的最小。

当 j == n-1:由 dp[i-1][n-1](正上)和(若存在)dp[i-1][n-2](左上)转移。

也就是说,第一列不是独立的“起点边界”,它和其他列一样,都依赖“上一行”的结果,自然会被计算到;不需要像“从左到右/从上到下”的网格最短路(只能向右或向下)那样同时初始化第一行和第一列。

dp[0][0] = matrix[0][0]           // 初始化第一行
dp[1][0] = min(dp[0][0], dp[0][1]) + matrix[1][0]
dp[2][0] = min(dp[1][0], dp[1][1]) + matrix[2][0]

约定是 dp[i][j]:i 是行(row),j 是列(column)。

dp[0] 在 Java 里表示第一行这一整行的一维数组;所以写成 dp[0] = [2, 1, 3] 就是说第一行的每一列值依次是 2、1、3,也就是 (0,0)、(0,1)、(0,2)。

dp[0][0]  dp[0][1]  dp[0][2]   ← 这是第0行
dp[1][0]  dp[1][1]  dp[1][2]
dp[2][0]  dp[2][1]  dp[2][2]
↑  第0

3.代码实现

class Solution {public int minFallingPathSum(int[][] matrix) {//行数int m=matrix.length;//列数int n=matrix[0].length;int[][] dp=new int[m][n];// “从上到下”,所以从第一行中的任何元素开始。初始化第一行:到达第一行的最小路径和就是其自身// 即 (0,0),(0,1),(0,2),代表矩阵数组中的第一组元素for(int j=0;j<n;j++){dp[0][j]=matrix[0][j];}for(int i=1;i<m;i++){for(int j=0;j<n;j++){//最左边的元素if(j==0){dp[i][j]=Math.min(dp[i-1][j],dp[i-1][j+1])+matrix[i][j];}//最右边的元素else if(j==n-1){dp[i][j]=Math.min(dp[i-1][j],dp[i-1][j-1])+matrix[i][j];}//中间正常元素else{dp[i][j]=Math.min(Math.min(dp[i-1][j-1],dp[i-1][j]),dp[i-1][j+1])+matrix[i][j];}}}int res=dp[m-1][0];//最后一行的第一个元素//找出最后一行的最小值for(int k=0;k<n;k++){res=Math.min(res,dp[m-1][k]);}return res;}
}
http://www.dtcms.com/a/488191.html

相关文章:

  • 中投中原建设有限公司网站进网站后台加什么原因
  • 建设网站需要哪些域名潍坊微信网站
  • 娄底建设网站制作济宁百度推广公司有几家
  • 网站公告栏设计coding搭建WordPress
  • 团购营销型网站制作wordpress文章功能
  • 只有做推广才能搜索到网站吗网络优化基础知识
  • YOLOv3:目标检测领域的经典之作
  • 深入解析C++ for循环原理
  • 数据安全运营指南 - 态势感知与威胁处置
  • 188旅游网站管理系统源码建设网站制作公司如何选择
  • 网站规划作品门户网站的细分模式有
  • 类似头条的网站怎么做怎么开发ios软件
  • 给公司申请网站用自己的账号建材网站建设功能方案
  • 购物网站含有哪些模块前端设计模板
  • DeepSeek-V3.2-Exp解析
  • 做网站需要的相关知识网站整站截图
  • 单页网站订单系统怎么改邮箱网站建设信息推荐
  • 如何做视频网站旗下账号凡科网站建设分类模块怎么弄
  • 做网站开发要学多久wordpress有多大的数据量
  • 基于SpringBoot的影评管理系统
  • 知识付费微网站开发凡科建站登录入口官方正版
  • 在360上做网站多少钱淘宝客返利网站开发
  • 河北网站建设价格低windows优化大师是什么软件
  • k8s之yml语法格式
  • 使用共享IP的坏处
  • 尤溪建设局网站易记域名网站大全
  • 网站seo诊断报告怎么写可以做私募股权投资的网站
  • python对图片进行二值化
  • Template [Item]PaperNote Error: TypeError: Zotero.ZoteroStyle is undefined
  • 网站排名做不上去吗wordpress 后台主题