当前位置: 首页 > news >正文

力扣HOT100之多维动态规划:64. 最小路径和


这道题和上一道题62.不同路径套路很像,思路也比较简单,用二维dp数组做就可以了。直接上动规五部曲:
1.确定dp[i][j]的含义:从起点到位置为[i][j]处的最小路径和
2.确定递推公式 dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
3.dp数组初始化 dp[0][j] = dp[0][j - 1] + grid[0][j]; dp[i][0] = dp[i - 1][0] + grid[i][0];
4.确定遍历顺序:从左往右,从上往下遍历
5.打印数组(省略)
思路比较简单,这里直接给代码了。

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {//1.确定dp[i][j]的含义:从起点到位置为[i][j]处的最小路径和//2.确定递推公式  dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];//3.dp数组初始化  dp[0][j] = dp[0][j - 1] + grid[0][j]; dp[i][0] = dp[i - 1][0] + grid[i][0];//4.确定遍历顺序:从左往右,从上往下遍历//5.打印数组(省略)int m = grid.size();    //m行int n = grid[0].size();  //n列vector<vector<int>> dp(m, vector<int>(n));//初始化dp[0][0] = grid[0][0];for(int i = 1; i < m; i++)dp[i][0] = dp[i - 1][0] + grid[i][0];for(int j = 1; j < n; j++)dp[0][j] = dp[0][j - 1] + grid[0][j];for(int i = 1; i < m; i++){for(int j = 1; j < n; j++)dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];}return dp[m - 1][n - 1];}
};
http://www.lqws.cn/news/83593.html

相关文章:

  • 量子物理:深入学习量子物理的基本概念与应用
  • Python_day43
  • Linux运维笔记:服务器感染 netools 病毒案例
  • mysql专题上
  • Vue 项目创建教程 (开发前的准备工作保姆级辅助文档)
  • 专注成就技术传奇:一路向前的力量
  • 数学建模期末速成 最短路径
  • Ubuntu22.04 安装 ROS2 Humble
  • Spark-TTS: AI语音合成的“变声大师“
  • ubuntu 添加应用到启动菜单
  • P5684 [CSP-J2019 江西] 非回文串 题解
  • Webpack依赖
  • Android高级开发第四篇 - JNI性能优化技巧和高级调试方法
  • 网络攻防技术三:网络脆弱性分析
  • 高阶数据结构——并查集
  • C语言基础(10)【二维数组 字符数组 字符串相关操作】
  • DAY01:【ML 第三弹】基本概念和建模流程
  • pytorch基本运算-范数
  • SCAU8640--希尔排序
  • 【知识点】第3章:基本数据类型
  • Python基础入门:开启编程之旅
  • 【算法训练营Day05】哈希表part1
  • vue router详解和用法
  • 数学建模期末速成 多目标规划
  • B1039 PAT乙级JAVA题解 到底买不买
  • 自定义序列生成器之单体架构实现
  • 截图工具 Snipaste V2.10.7(2025.06.2更新)
  • day 43
  • 【操作系统·windows快捷键指令】
  • STM32:CAN总线精髓:特性、电路、帧格式与波形分析详解