news 2026/3/11 2:51:38

动态规划求解矩阵的最小路径和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
动态规划求解矩阵的最小路径和

描述

给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。

数据范围: 1≤n,m≤5001≤n,m≤500,矩阵中任意值都满足 0≤ai,j≤1000≤ai,j​≤100

要求:时间复杂度 O(nm)O(nm)

例如:当输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]时,对应的返回值为12,

所选择的最小累加和路径如下图所示:

java代码实现:

public class Solution {

/**

* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

*

*

* @param matrix int整型二维数组 the matrix

* @return int整型

*/

public int minPathSum (int[][] matrix) {

// write code here

int result = 0;

int rows = matrix.length;

int columns = matrix[0].length;

//dp[i][j]即为matrix[i][j]位置的最小路径值

int[][] dp = new int[rows][columns];

for(int i=0;i<rows;i++){

for(int j=0;j<columns;j++){

if(i==0&&j==0){

dp[i][j] = matrix[i][j];

//先布局第0行和第0列的最小路径值

}else if(i==0){

dp[i][j] = dp[i][j-1] + matrix[i][j];

}else if(j==0){

dp[i][j] = dp[i-1][j] + matrix[i][j];

//再逐个计算dp[i][j]

}else{

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

}

}

}

result = dp[rows-1][columns-1];

return result;

}

}

把矩阵(二维数组)抽象成二叉树或者图,再做递归遍历会怎么样?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 6:47:12

【毕业设计】机器学习基于Spatial Dropout-GRU和TextCNN的中文影评情感分析

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/3/4 4:10:49

基于SSM的智慧养老云服务平台设计与开发毕业设计项目源码

项目简介在人口老龄化加剧、养老服务需求多元化的背景下&#xff0c;传统养老服务存在 “服务响应滞后、健康监测不及时、家属沟通不畅、机构管理低效” 的痛点。基于 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;构建的智慧养老云服务平台&#xff0c;适配平台管理员、…

作者头像 李华
网站建设 2026/3/4 9:48:57

2026年,预训练又回来了!非常详细收藏我这一篇就够了

scaling law 开始停滞不前&#xff0c;大家逐渐意识到真正重要的是强化学习。 过去一年中&#xff0c;绝大多数进展正是由这一方法推动的。然而事实证明&#xff0c;这种判断是错的。就连OpenAI这样的顶尖实验室也被打了个措手不及&#xff0c;并为此付出了代价。 下面我将解释…

作者头像 李华