2026/2/15 17:22:32
网站建设
项目流程
企业网站开发多少钱,企业查询系统官网入口,微商城开发小程序开发,我公司是做网站开发的怎么纳税描述给定一个 n * m 的矩阵 a#xff0c;从左上角开始每次只能向右或者向下走#xff0c;最后到达右下角的位置#xff0c;路径上所有的数字累加起来就是路径和#xff0c;输出所有的路径中最小的路径和。数据范围: 1≤n,m≤5001≤n,m≤500#xff0c;矩阵中任意值都满足 …描述给定一个 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 hereint 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 i0;irows;i){for(int j0;jcolumns;j){if(i0j0){dp[i][j] matrix[i][j];//先布局第0行和第0列的最小路径值}else if(i0){dp[i][j] dp[i][j-1] matrix[i][j];}else if(j0){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;}}把矩阵二维数组抽象成二叉树或者图再做递归遍历会怎么样