news 2026/5/1 7:42:15

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

作者头像

张小明

前端开发工程师

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/4/25 5:10:37

WorkshopDL终极指南:三步完成Steam创意工坊模组下载

WorkshopDL终极指南&#xff1a;三步完成Steam创意工坊模组下载 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 还在为无法直接访问Steam创意工坊而烦恼吗&#xff1f;Workshop…

作者头像 李华
网站建设 2026/4/30 17:59:34

基于Java的失业人员档案智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ? 基于Java的失业人员档案智慧管理系统的设计与实现旨在为零基础的学生提供一份详尽的学习指南&#xff0c;帮助他们在毕业设计中选择一个既实用又具创新性的题目。传统的选题往往过于泛滥且缺乏深度&#xff0c;《本系统》则主要针对失业人…

作者头像 李华
网站建设 2026/5/1 6:29:38

基于python的主观题自动阅卷系统(源码+文档)

项目简介主观题自动阅卷系统实现了以下功能&#xff1a;采用技术 pythoon DJango框架, mysql 管理员&#xff1a;设置考试时间 管理教师 学生 发布公告 课程管理 教师&#xff1a;个人资料管理 题库管理 试卷组卷 成绩管理 公告查看 学生&#xff1a;个人资料修改 在线答…

作者头像 李华