动态规划(6)下降路径最小值

给你一个 n x n方形 整数数组 matrix ,请你找出并返回通过 matrix下降路径最小和

下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 (row, col) 的下一个元素应当是 (row + 1, col - 1)(row + 1, col) 或者 (row + 1, col + 1)

示例 1:

复制代码
输入:matrix = [[2,1,3],[6,5,4],[7,8,9]]
输出:13
解释:如图所示,为和最小的两条下降路径
java 复制代码
public class Solution {
    public int minFallingPathSum(int[][] matrix) {
        //1.创建dp表
        //2.初始化
        //3.填表
        //4.返回值
        int n= matrix.length;
        int[][] dp =new int[n+1][n+2];
        for (int i=1;i<=n;i++)dp[i][n+1]=Integer.MAX_VALUE;
        for (int i=1;i<=n;i++)
            for (int j=1;j<=n;j++)
                dp[i][j] =Math.min(dp[i-1][j],Math.min(dp[i-1][j-1],dp[i-1][j+1]))+matrix[i-1][j-1];
        int ret=Integer.MAX_VALUE;
        for (int j=1;j<=n;j++)
            ret=Math.min(ret,dp[n][j]);
        return  ret;
        }

    public static void main(String[] args) {
        Solution solution=new Solution();
        int [][]matrix={{-19,57},{-40,5}};

        System.out.println(solution.minFallingPathSum(matrix));
    }
    }
相关推荐
Yingye Zhu(HPXXZYY)3 小时前
ICPC 2023 Nanjing R L 题 Elevator
算法
程序员Xu6 小时前
【LeetCode热题100道笔记】二叉树的右视图
笔记·算法·leetcode
笑脸惹桃花6 小时前
50系显卡训练深度学习YOLO等算法报错的解决方法
深度学习·算法·yolo·torch·cuda
阿维的博客日记7 小时前
LeetCode 48 - 旋转图像算法详解(全网最优雅的Java算法
算法·leetcode
GEO_YScsn7 小时前
Rust 的生命周期与借用检查:安全性深度保障的基石
网络·算法
程序员Xu7 小时前
【LeetCode热题100道笔记】二叉搜索树中第 K 小的元素
笔记·算法·leetcode
THMAIL8 小时前
机器学习从入门到精通 - 数据预处理实战秘籍:清洗、转换与特征工程入门
人工智能·python·算法·机器学习·数据挖掘·逻辑回归
Kevinhbr9 小时前
CSP-J/S IS COMING
数据结构·c++·算法
蕓晨9 小时前
set的插入和pair的用法
c++·算法
THMAIL9 小时前
深度学习从入门到精通 - AutoML与神经网络搜索(NAS):自动化模型设计未来
人工智能·python·深度学习·神经网络·算法·机器学习·逻辑回归