news 2026/4/18 1:18:52

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

作者头像

张小明

前端开发工程师

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/16 22:37:21

《部件库(Widget Factory)》

《部件库(Widget Factory)》 引言 在现代软件开发领域,组件化和模块化已成为一种主流的软件开发模式。部件库(Widget Factory)作为一种重要的组件化工具,在提高开发效率、降低开发成本方面发挥着至关重要的作用。本文将围绕部件库(Widget Factory)的定义、作用、特点…

作者头像 李华
网站建设 2026/4/17 23:32:45

华为OD机考双机位C卷 - 寻找密码(Java Python JS C/C++ GO )

最新华为OD机试 真题目录&#xff1a;点击查看目录 华为OD面试真题精选&#xff1a;点击立即查看 华为OD机考双机位C卷 - 寻找密码 题目描述 小王在进行游戏大闯关&#xff0c;有一个关卡需要输入一个密码才能通过&#xff0c;密码获得的条件如下&#xff1a; 在一个密码…

作者头像 李华
网站建设 2026/4/14 22:04:29

Kotlin类定义与使用全指南

在 Kotlin 里&#xff0c;class 是定义“类型”的关键字&#xff0c;相当于“模板/蓝图”&#xff0c;通过它可以创建对象&#xff08;实例&#xff09;。下面按常用程度&#xff0c;从浅到深讲一遍。1. 最基础的类定义 class SmartDevice {fun turnOn() {println("Device…

作者头像 李华
网站建设 2026/4/14 16:48:01

基于SpringBoot的社区生鲜团购系统毕业设计项目源码

题目简介 在生鲜消费升级、社区团购模式兴起的背景下&#xff0c;传统生鲜流通存在 “中间环节多、损耗率高、配送响应慢” 的痛点。基于 SpringBoot 构建的社区生鲜团购系统&#xff0c;适配平台管理员、团长、供应商、社区用户等角色&#xff0c;实现生鲜商品上架、团购开团、…

作者头像 李华
网站建设 2026/4/17 14:40:08

基于Android的宠物社区app设计与实现(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦宠物主人社交需求分散、宠物养护知识获取不系统、宠物相关服务对接不畅等痛点&#xff0c;设计并实现一款基于Android的宠物社区APP&#xff0c;旨在为宠物主人搭建集中化的交流互动平台&#xff0c;同时整合宠物相关资源&#xff0c;提供全面的宠物服务支持…

作者头像 李华