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

2025年--Lc187--120. 三角形最小路径和(多维动态规划,矩阵)--Java版

1.题目

在这里插入图片描述

2.思路

(1)dp[i][j]数组的定义:从位置(0,0)到(i,j)的最短路径和
(2)初始化第一行,dp[0][0]=grid[0][0]
(3)递推公式
dp[i][j]=grid[i][j]+Math.min(dp[i-1][j],dp[i-1][j-1])
(4)寻找边界条件
1)最左侧元素(j0)
2)最右侧的元素(j
i)
(5)终止条件,到达最后一行寻求最小值dp[n-1][j].
例子

      [2][3] [4][6] [5] [7][4] [1] [8] [3]

对应坐标(行号 i,列号 j):

0: c[0][0] = 21: c[1][0] = 3, c[1][1] = 42: c[2][0] = 6, c[2][1] = 5, c[2][2] = 73: c[3][0] = 4, c[3][1] = 1, c[3][2] = 8, c[3][3] = 3

第 0 行:

f[0][0] = 2

f[i][0] = f[i−1][0] + c[i][0] ,左边缘路径,只能直往下走。

f[i][i] = f[i−1][i−1] + c[i][i] , 右边缘路径,也只能直往下走。

3.代码实现

class Solution {public int minimumTotal(List<List<Integer>> triangle) {//三角形的行数,把三角形弄成直角三角形int n=triangle.size();int[][] dp=new int[n][n];//初始化起点坐标dp[0][0]=triangle.get(0).get(0);//遍历顺序for(int i=1;i<n;i++){for(int j=0;j<=i;j++){//判断边界条件//当 j = 0(即最左边的元素)时,你没有左上角的来源 f[i−1][j−1],因为最左边已经没有元素了。//“当前这一行最左边的节点,只能从上一行最左边的节点下来。”if(j==0){dp[i][j]=dp[i-1][j]+triangle.get(i).get(j);}//判断边界条件//i=j,也就是本行的最右边那个元素//没有右上角的来源 f[i−1][j] —— 因为上一行只有 i 个元素,而这一行有 i+1 个.只能从左上角 f[i−1][i−1] 走下来:else if(i==j){dp[i][j]=dp[i-1][j-1]+triangle.get(i).get(j);}else{dp[i][j]=triangle.get(i).get(j)+Math.min(dp[i-1][j],dp[i-1][j-1]);}}}int ans=dp[n-1][0];//最后一行的第一个元素for(int j=1;j<n;j++){//最后一行的最小元素。ans=Math.min(ans,dp[n-1][j]);}return ans;}}
http://www.dtcms.com/a/486814.html

相关文章:

  • 脑电分析——论文解读
  • HTTPS 包 抓取与分析实战,从抓包到解密、故障定位与真机取证
  • 做网站实训目的和意义公司网页制作培训试题
  • 影响DCDC输出纹波的因素有哪些?
  • 婴儿辅食中企动力提供网站建设自适应全屏网站
  • 【征文计划】Rokid CXR-M SDK全解析:从设备连接到语音交互的AR协同开发指南
  • 川崎焊接机器人弧焊气体节约
  • 做网站横幅价格wordpress 36kr
  • Java-Spring入门指南(二十六)Android Studio下载与安装
  • 14.C 语言实现一个迷你 Shell
  • 【理解React Hooks与JavaScript类型系统】
  • 如何使用PyTorch高效实现张量的批量归一化原理与代码实战
  • 文心快码Comate3.5S更新,用多智能体协同做个健康管理应用
  • 江苏赛孚建设工程有限公司网站做php门户网站那个系统好
  • OpenCV5-图像特征harris-sift-特征匹配-图像全景拼接-答题卡识别判卷
  • 计算机网络经典问题透视:以太网发送512bit后,碰撞还可能发生吗?
  • 免费网站管理系统昌邑建设网站
  • 初始Spring
  • wordpress站点标题看不到合肥建站企业
  • 网站空间哪家公司的好上海专业网站建设价
  • 考研数学笔记(概率统计篇)
  • HT6809:重塑音频体验的立体声 D 类功率放大器
  • Flutter对话框AlertDialog使用指南
  • 玩Android Flutter版本,通过项目了解Flutter项目快速搭建开发
  • 大数据毕业设计选题推荐-基于大数据的商店购物趋势分析与可视化系统-大数据-Spark-Hadoop-Bigdata
  • 网站标题符号的应用龙岩整站优化
  • 运维知识图谱的构建与应用
  • MySQL中RUNCATE、DELETE、DROP 的基本介绍
  • php企业网站 源码asp网站耗资源
  • 【LeetCode】四数之和