动态规划-矩阵的最小路径和(只允许向右向下移动)

embedded/2024/9/24 4:35:21/

一、问题描述

二、解题思路

这个题目是典型的动态规划问题,只能从左上角开始,往右或者往下移动。

1.dp数组的初始化:

        第一行:设置行总花费变量,每往右走一个格把当前格的花费Cost加到总花费中,总花费就是当前格的最小花费。

        第一列:设置列总花费变量,每往下走一个格把当前格的花费Cost加到总花费中,总花费就是当前格的最小花费。

2.状态转移方程:

        设当前在第[i][j]位置,从左上角到当前位置的总花费=下面两者较小值加上当前格花费cost 

        2.1 从左侧格[i][j-1]往右走

        2.2 从上侧格[i-1][j]往下走

        即:dp[i][j] = Min(dp[i][j-1],dp[i-1][j])+cost 

三、代码实现

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param matrix int整型二维数组 the matrix* @return int整型*/public int minPathSum (int[][] matrix) {// 这个题目是典型的动态规划问题int rowLen=matrix.length;int colLen=matrix[0].length;int[][] dpMatrix=new int[rowLen][colLen];//初始化dpMatrixint colCost=0;for(int col=0;col<colLen;col++){//初始化第0行colCost+=matrix[0][col];dpMatrix[0][col]=colCost;}int rowCost=0;for(int row=0;row<rowLen;row++){//初始化第0列rowCost+=matrix[row][0];dpMatrix[row][0]=rowCost;}//每次只能向右或者向下移动for(int row=1;row<rowLen;row++){for(int col=1;col<colLen;col++){int downCost=dpMatrix[row-1][col]+matrix[row][col];int rightCost=dpMatrix[row][col-1]+matrix[row][col];dpMatrix[row][col]=Math.min(downCost,rightCost);}}return dpMatrix[rowLen-1][colLen-1];}
}

四、刷题链接

矩阵的最小路径和_牛客题霸_牛客网


http://www.ppmy.cn/embedded/46824.html

相关文章

特征优化+模型优化

一、优化思路梳理 课前准备   在昨天的内容中&#xff0c;我们通过使用更强的集成模型以及模型融合的方法&#xff0c;已经顺利将比赛分数提高至前20%。但正如此前所说&#xff0c;之前的一系列操作只不过是遵循了常规操作流程进行的数据处理与建模&#xff0c;若希望能够更进…

网鼎杯 2020 玄武组 SSRFMe

复习一下常见的redis主从复制 主要是redis伪服务器的选择和一些小坑点 <?php function check_inner_ip($url) { $match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url); if (!$match_result) { die(url fomat error); } try { …

德人合科技——@天锐绿盾 | -文档透明加密系统

天锐绿盾文档透明加密系统是一种先进的数据安全解决方案&#xff0c;旨在保护企业和组织的敏感信息&#xff0c;防止未经授权的访问和泄漏。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 以下是该系统的一些关键特点和功…

Python课设-学生信息管理系统

一、效果展示图 二、前端代码 1、HTML代码 <1>index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

重构与优化-组织函数(1)

1. Extract Method "Extract Method"(提取方法)是软件工程中的一项基础重构技术,用于改进代码结构、增强代码的可读性和可维护性。此技术的核心思想是识别代码中可复用或者具有独立逻辑责任的部分,并将其抽离出来形成一个新的方法。以下是详细的步骤、原因、好处…

JavaScript 浏览器对象模型BOM 概念

JavaScript浏览器对象模型&#xff08;BOM&#xff09;是指JavaScript用来操作浏览器窗口、框架和历史记录的一组对象和方法。 BOM提供了一系列对象来操作浏览器的各个部分&#xff0c;使用BOM可以实现以下功能&#xff1a; 访问和操作浏览器窗口的对象&#xff0c;比如window…

集成学习笔记

集成学习 简介 决策树 GBDT 拟合残差 一般 GBDT XGBOOST 弓 1 能表达样本落入的子节点&#xff0c;但是不能把表示结构 2 3.正则项 – 惩罚 防止过拟合&#xff0c;比如一个值总共有10颗树都是由同一颗树决定的&#xff0c;过拟合 5 找到一种方式不依赖于损失函数 …

DolphinScheduler 3.x 执行insert into SQL任务显示成功,但查不到数据

问题&#xff1a;DolphinScheduler 3.x 执行insert into SQL任务成功&#xff0c;但写入数据查询不到 原因&#xff1a;若SQL首行有 “-- ” 开头注释&#xff0c;则是由于 DolphinScheduler 3.x 新版本相较于 2.x 老版本&#xff0c;并未将非查询SQL语句的首行 “-- 注释” 按…