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

2023-11-09

题目描述:给定一个 N*M 的矩阵arr,从左上角开始每次只能向下或者向右走,最后到达右下角。路径上所有点的数字和为 路径和,求最小的路径和。

典型的动态规划。状态方程为: dp[i][j] = getMin( dp[i - 1][j] ,dp[i][j - 1] ) + arr[i][i] 。dp[i][j] 表示 达到点 arr[i][j] 是的最小路径和,因为每次只能向下或者向右,所以要达到 arr[i][j] 必须先经过 arr[i - 1][j - 1] 或者 arr[i][j - 1] 其中一个点,找出路径最小的即可。

因为每次只能向下和向右,所以第一行只能从左一直往右走,而第一列只能从上一直往下走,并且将经过的点累加起来。

所以我们可以先对第一行、第一列的 dp[i][j] 进行初始化。

具体代码:

import java.util.Scanner;
/**
 * 输入一个 N*M 的矩阵,从左上角开始,每次只能向下或者向右走,最后到达右下角的位置
 * 将路径上所以数字加起来就是路径和,求最小路径和
 *  
 * @author luzi
 *
 */

public class minPathSumOfArr {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		while(scan
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态规划--矩阵最小的路径和 的相关文章

  • 【华为OD机试真题 python】区块链文件转储系统【2023 Q1

    题目描述 区块链文件转储系统 区块链底层存储是一个链式文件系统 由顺序的N个文件组成 每个文件的大小不一 依次为F1 F2 Fn 随着时间的推移 所占存储会越来越大 云平台考虑将区块链按文件转储到廉价的SATA盘 只有连续的区块链文件才能转

随机推荐